📄 schedulesmsmanager.cs
字号:
{
string text2 = XmlHelper.ReadXmlAttributeString(node2, "id");
ScheduleSms item = this._scheduleSmsList.ScheduleSmses[text2];
if (item != null)
{
this._scheduleSmsList.ScheduleSmses.Remove(item);
}
list2.Add(text2);
}
ScheduleSmsesDeletedEventArgs args = new ScheduleSmsesDeletedEventArgs((string[]) list2.ToArray(typeof(string)));
FuncDispatcher.InvokeEventHandlerInUiThread<ScheduleSmsesDeletedEventArgs>(this, this.ScheduleSmsesDeleted, args);
this.SaveToLocal();
}
}
}
}
private void finalResponseReceived_AsyncGetScheduleSms(object sender, SipResponseReceivedEventArgs e)
{
SipResponse sipMsg = e.Response;
AsyncBizOperation op = (AsyncBizOperation) sipMsg.Request.Context;
if (!sipMsg.IsOK)
{
LogHelper.LogReceivedSipMessage(sipMsg);
if (op != null)
{
op.FireImpsErrorInUiThread(new ImpsErrorEventArgs(string.Empty, 10));
}
switch (sipMsg.Message.StatusCode)
{
case 400:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.Error400), op);
return;
case 500:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.Error500), op);
return;
}
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_Default), op);
}
else
{
XmlDocument document = new XmlDocument();
document.LoadXml(sipMsg.Message.Body);
XmlNode node = document.DocumentElement.SelectSingleNode("schedule-sms-list");
if (node != null)
{
XmlNodeList list = node.SelectNodes("schedule-sms");
if ((list != null) && (list.Count != 0))
{
ArrayList list2 = new ArrayList();
foreach (XmlNode node2 in list)
{
string id = XmlHelper.ReadXmlAttributeString(node2, "id");
ScheduleSms item = this._scheduleSmsList.ScheduleSmses[id];
if (item == null)
{
item = new ScheduleSms(this._scheduleSmsList, string.Empty, id);
this._scheduleSmsList.ScheduleSmses.Add(item);
}
item.LoadXml(node2);
list2.Add(id);
}
this._scheduleSmsList.ScheduleSmses.InnerDoSort();
AsyncBizOperation operation2 = new AsyncBizOperation();
this._user.ContactList.AsyncGetContactsInfoBatchAll(this._scheduleSmsList.AllReceiverContacts, operation2, new string[] { "nickname", "name" });
ScheduleSmsesUpdateEventArgs args = new ScheduleSmsesUpdateEventArgs((string[]) list2.ToArray(typeof(string)));
FuncDispatcher.InvokeEventHandlerInUiThread<ScheduleSmsesUpdateEventArgs>(this, this.ScheduleSmsesUpdated, args);
if (op != null)
{
op.FireSuccessedInUiThread(EventArgs.Empty);
}
this.SaveToLocal();
}
}
}
}
private void finalResponseReceived_AsyncGetScheduleSmsList(object sender, SipResponseReceivedEventArgs e)
{
SipResponse sipMsg = e.Response;
AsyncBizOperation op = (AsyncBizOperation) sipMsg.Request.Context;
if (!sipMsg.IsOK)
{
LogHelper.LogReceivedSipMessage(sipMsg);
if (op != null)
{
op.FireImpsErrorInUiThread(new ImpsErrorEventArgs(string.Empty, 10));
}
switch (sipMsg.Message.StatusCode)
{
case 400:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.Error400), op);
return;
case 0x194:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.GetSmsList.Err_NotFound), op);
return;
case 500:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.Error500), op);
return;
}
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.GetSmsList.Err_Default), op);
}
else
{
XmlDocument document = new XmlDocument();
document.LoadXml(sipMsg.Message.Body);
XmlNode node = document.DocumentElement.SelectSingleNode("schedule-sms-list");
if (node != null)
{
this._scheduleSmsList.LoadXml(node, false);
if (op != null)
{
op.FireSuccessedInUiThread(EventArgs.Empty);
}
}
}
}
private void finalResponseReceived_AsyncSetScheduleSms(object sender, SipResponseReceivedEventArgs e)
{
SipResponse sipMsg = e.Response;
AsyncBizOperation op = (AsyncBizOperation) sipMsg.Request.Context;
if (sipMsg.IsOK)
{
op.FireSuccessedInUiThread(EventArgs.Empty);
XmlDocument document2 = new XmlDocument();
document2.LoadXml(sipMsg.Message.Body);
XmlNode node = document2.DocumentElement.SelectSingleNode("schedule-sms-list");
if (node != null)
{
string text2 = XmlHelper.ReadXmlAttributeString(node, "version");
XmlNode node3 = document2.DocumentElement.SelectSingleNode("schedule-sms");
if (node3 != null)
{
string text3 = XmlHelper.ReadXmlAttributeString(node3, "version");
string text4 = XmlHelper.ReadXmlAttributeString(node3, "id");
ScheduleSms item = (ScheduleSms) op.ContextForBiz;
item.Version = text3;
item.Id = text4;
AsyncBizOperation operation2 = new AsyncBizOperation();
operation2.IsImpsErrorHandled = true;
this.AsyncGetScheduleSms(new string[] { text4 }, operation2);
this._scheduleSmsList.ScheduleSmses.Add(item);
this._scheduleSmsList.Version = text2;
this.SaveToLocal();
}
}
}
else
{
LogHelper.LogReceivedSipMessage(sipMsg);
switch (sipMsg.Message.StatusCode)
{
case 400:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.Error400), op);
return;
case 0x1e6:
{
XmlDocument document = new XmlDocument();
document.LoadXml(sipMsg.Message.Body);
XmlNode node = document.DocumentElement.SelectSingleNode("error");
if (node == null)
{
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Error486), op);
return;
}
switch (XmlHelper.ReadXmlAttributeString(node, "reason"))
{
case "sms-send-time":
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_sms_send_time), op);
return;
case "sms-daily-limit":
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_sms_daily_limit), op);
return;
case "sms-monthly-limit":
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_sms_monthly_limit), op);
return;
case "sms-non-send-limit":
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_sms_non_send_limit), op);
return;
case "receiver-num-limit":
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_receiver_num_limit), op);
return;
case "sms-send-time-range-out":
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_sms_send_time_range_out), op);
return;
}
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Error486), op);
return;
}
case 500:
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgSipRespInternalServerError), op);
return;
}
this._user.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.SchduleSms.SetSms.Err_Default), op);
}
}
internal void LoadFromLocal()
{
PersistentDelegate load = null;
try
{
if (load == null)
{
load = delegate (XmlNode node) {
this._scheduleSmsList.LoadXml(node, true);
};
}
this._user.PersistentManager.LoadScheduleSmses(load);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
internal void SaveToLocal()
{
PersistentDelegate save = null;
try
{
if (save == null)
{
save = delegate (XmlNode node) {
string text;
if (node.HasChildNodes)
{
node.RemoveAll();
}
using (StringWriter w = new StringWriter())
{
using (XmlTextWriter writer = new XmlTextWriter(w))
{
writer.Formatting = Formatting.None;
this._scheduleSmsList.WriteLocalXml(writer);
text = w.ToString();
}
}
node.InnerXml = text;
};
}
this._user.PersistentManager.SaveScheduleSmses(save);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
public Imps.Client.Core.ScheduleSmsList ScheduleSmsList
{
get
{
return this._scheduleSmsList;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -