⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 schedulesmsmanager.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
                        {
                            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 + -