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

📄 smsmanager.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.Core
{
    using Imps.Base.Sipc;
    using Imps.Client.Base;
    using Imps.Client.Core.History;
    using Imps.Client.Utils;
    using Imps.Common;
    using System;
    using System.Collections.Generic;

    public class SMSManager
    {
        public static void AsyncSendSMS(User Owner, string uri, string content, AsyncBizOperation op)
        {
            <>c__DisplayClass3 class2;
            SipRequest req = Owner.CreateSipRequest("M", Owner.SipConnection.NextCallId(), 1);
            req.Message.AddHeader(new SipcToHeader(uri));
            IicUri uri2 = new IicUri(uri);
            if (Owner.Configuration.UserSetting.LongSmsSetting == LongSMSSetting.Enable)
            {
                if (uri2.Type != IicUriType.PersonalGroup)
                {
                    req.Message.AddHeader(new SipcEventHeader("SendCatSMS"));
                }
                else
                {
                    req.Message.AddHeader(new SipcEventHeader("PGSendCatSMS"));
                }
            }
            else if (uri2.Type != IicUriType.PersonalGroup)
            {
                req.Message.AddHeader(new SipcEventHeader("SendSMS"));
            }
            else
            {
                req.Message.AddHeader(new SipcEventHeader("PGSendSMS"));
            }
            req.Message.Body = content;
            req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(class2, (IntPtr) this.<AsyncSendSMS>b__0);
            req.SendMessageFailed += new EventHandler<FailedEventArgs>(class2, (IntPtr) this.<AsyncSendSMS>b__1);
            req.WaitResponseTimeout += delegate {
                op.FireImpsErrorInUiThread(null);
            };
            ErrorHelper.HandleSendRequestErrorAndTimeout(req);
            Owner.SendSipMessage(req);
        }

        private static void SaveSMSMessage(User Owner, string uri, string content, SipResponse response)
        {
            try
            {
                if (Owner.Configuration.UserSetting.ConversationSetting.SaveMessages)
                {
                    DateTime now = DateTime.Now;
                    string id = null;
                    try
                    {
                        if (response.Message.DateHeader != null)
                        {
                            DateTime.TryParse(response.Message.DateHeader.Value, ref now);
                        }
                    }
                    catch
                    {
                    }
                    if (response.Message.MessageIDHeader != null)
                    {
                        id = response.Message.MessageIDHeader.Value;
                    }
                    IicUri uri2 = new IicUri(uri);
                    string friendlyName = string.Empty;
                    PlayerType contact = PlayerType.Contact;
                    if (uri == Owner.Uri.Raw)
                    {
                        friendlyName = Owner.Nickname;
                    }
                    else if (uri2.Type != IicUriType.PersonalGroup)
                    {
                        Contact contact = Owner.ContactList.FindContact(uri);
                        if (contact != null)
                        {
                            friendlyName = contact.DisplayName;
                        }
                    }
                    else
                    {
                        contact = PlayerType.Group;
                        PersonalGroup group = Owner.PersonalGroups[uri];
                        if (group != null)
                        {
                            friendlyName = group.GroupInfo.Name.Value;
                        }
                    }
                    if (!string.IsNullOrEmpty(friendlyName))
                    {
                        IHistoryManager historyManager = Owner.HistoryManager;
                        Player sender = new Player(Owner.Uri.Raw, Owner.Nickname, PlayerType.User);
                        List<Player> list = new List<Player>();
                        list.Add(new Player(uri, friendlyName, contact));
                        IMessage msg = new InstantMessage(id, sender, content, list.ToArray());
                        msg.Type = Imps.Client.Core.MessageType.ForceSMS;
                        msg.Time = now;
                        historyManager.SaveMessage(msg);
                    }
                }
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -