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

📄 contactlist.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 5 页
字号:
                    handler2 = delegate {
                        this.AsyncSubscribePresenceBatchAll(isSub, op);
                    };
                }
                operation.Successed += handler2;
                return true;
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
                return false;
            }
        }

        internal void Clear()
        {
            this.Groups.Clear();
            this._hasLoadLocalStroage = null;
            this.ClearContacts();
            this.Version = "";
            this._contactChangedEventArgsCol.Clear();
            this.SubscribeExpiredSeconds = 0;
            this._suspendCount = 0;
            this._subCallId = -1;
            this._subCSeq = -1;
            this._newContactsAddByMobileNo = null;
            this._penddingAddBuddyRequestUri = null;
            this.RecentBuddies.Clear();
        }

        internal void ClearContacts()
        {
            try
            {
                using (IEnumerator<Imps.Client.Core.Contact> enumerator = this.Contacts.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        enumerator.get_Current().Dispose();
                    }
                }
            }
            catch
            {
            }
            this.Contacts.Clear();
            this.Buddies.Clear();
            this.MobileBuddies.Clear();
            this.ChatFriends.Clear();
            this.Strangers.Clear();
        }

        private void finalResponse_AsyncInviteMobileOpenIMPSService(object sender, SipResponseReceivedEventArgs e)
        {
            SipResponse sipMsg = e.Response;
            AsyncBizOperation context = (AsyncBizOperation) sipMsg.Request.Context;
            if (!sipMsg.IsOK)
            {
                LogHelper.LogReceivedSipMessage(sipMsg);
                switch (sipMsg.Message.StatusCode)
                {
                    case 400:
                        context.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgBadRequest));
                        return;

                    case 460:
                        context.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgBuddyAlreadyOpenIIC));
                        return;

                    case 500:
                        context.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgSipRespInternalServerError));
                        return;
                }
                context.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgUnknownError));
            }
            else
            {
                context.FireSuccessedInUiThread(EventArgs.Empty);
            }
        }

        private void finalResponseReceived_AddBuddyRequest(object sender, SipResponseReceivedEventArgs e)
        {
            try
            {
                SipResponse sipMsg = e.Response;
                AsyncBizOperation op = (AsyncBizOperation) sipMsg.Request.Context;
                ParamForBiz contextForBiz = (ParamForBiz) op.ContextForBiz;
                IicUri iicUri = contextForBiz.IicUri;
                bool? nullable = contextForBiz.Bool1;
                if (this.PenddingAddBuddyRequestUri.Contains(iicUri))
                {
                    this.PenddingAddBuddyRequestUri.Remove(iicUri);
                }
                if (sipMsg.IsOK)
                {
                    XmlDocument document = new XmlDocument();
                    document.LoadXml(sipMsg.Message.Body);
                    XmlNode nodeContact = document.DocumentElement.SelectSingleNode("contacts");
                    this.parseAddBuddyResponseOrNotifyNode_UpdateBuddy(nodeContact, ParseBuddyType.AddBuddyResponse, op);
                    op.FireSuccessedInUiThread(EventArgs.Empty);
                }
                else if (sipMsg.Message.StatusCode == 0x20a)
                {
                    string xml = sipMsg.Request.Message.Body;
                    if (xml.Length == 0)
                    {
                        op.FireImpsErrorInUiThread(new ImpsErrorEventArgs("添加好友失败。"));
                    }
                    else
                    {
                        XmlDocument document2 = new XmlDocument();
                        document2.LoadXml(xml);
                        XmlNode node = document2.DocumentElement.SelectSingleNode("/" + "args" + "/" + "contacts" + "/" + "buddies" + "/" + "buddy");
                        if (node == null)
                        {
                            op.FireImpsErrorInUiThread(new ImpsErrorEventArgs(string.Empty));
                        }
                        else
                        {
                            string uriString = XmlHelper.ReadXmlAttributeString(node, "uri");
                            if (uriString.Length == 0)
                            {
                                op.FireImpsErrorInUiThread(new ImpsErrorEventArgs(string.Empty));
                            }
                            else
                            {
                                IicUri uri2 = new IicUri(uriString);
                                if (!uri2.Belongs(IicUriType.Tel))
                                {
                                    op.FireImpsErrorInUiThread(new ImpsErrorEventArgs("添加好友失败,可能原因是对方已经关闭服务。"));
                                }
                                else
                                {
                                    string localName = XmlHelper.ReadXmlAttributeString(node, "local-name").Trim();
                                    string targetGroupIdArr = XmlHelper.ReadXmlAttributeString(node, "buddy-lists");
                                    string text5 = XmlHelper.ReadXmlAttributeString(node, "desc");
                                    AddBuddyExtraData extraData = new AddBuddyExtraData();
                                    extraData.WhoAmI = text5;
                                    bool? nullable2 = nullable;
                                    this.AsyncAddMobileBuddy(uri2.MobileNo, localName, targetGroupIdArr, nullable2.get_HasValue() ? nullable2.GetValueOrDefault() : false, extraData, op);
                                }
                            }
                        }
                    }
                }
                else
                {
                    LogHelper.LogReceivedSipMessage(sipMsg);
                    switch (sipMsg.Message.StatusCode)
                    {
                        case 520:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgAddMobileBuddyLimitExceeded, 0x9b), op);
                            return;

                        case 0x209:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgAddBuddyAlreadyExist, 0x9a), op);
                            base.Owner.ContactList.AsyncReGetContactList(new AsyncBizOperation(), false);
                            return;

                        case 500:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgSipRespInternalServerError, 0x99), op);
                            return;

                        case 0x1e6:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgAddBuddyTooMuch, 0x9c), op);
                            return;

                        case 400:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgBadRequest, 0x98), op);
                            return;

                        case 0x194:
                            if (iicUri.Belongs(IicUriType.Tel))
                            {
                                base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgMoibleNoNotExist, 0x9d), op);
                            }
                            else
                            {
                                base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgSidNotExist, 0x9d), op);
                            }
                            return;
                    }
                    base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.MsgUnknownError, 10), op);
                }
            }
            catch (Exception exception)
            {
                LogHelper.LogException(exception);
            }
        }

        private void finalResponseReceived_AddChatFriend(object sender, SipResponseReceivedEventArgs e)
        {
            SipResponse sipMsg = e.Response;
            if (sipMsg != null)
            {
                AsyncBizOperation op = (AsyncBizOperation) sipMsg.Request.Context;
                if (sipMsg.IsOK)
                {
                    XmlDocument document = new XmlDocument();
                    document.LoadXml(sipMsg.Message.Body);
                    XmlNode node = document.DocumentElement.SelectSingleNode("contacts");
                    if (node == null)
                    {
                        LogHelper.LogReceivedSipMessage(sipMsg);
                        base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                    }
                    else
                    {
                        string text = XmlHelper.ReadXmlAttributeString(node, "version");
                        if (text.Length == 0)
                        {
                            LogHelper.LogReceivedSipMessage(sipMsg);
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                        }
                        else
                        {
                            string xpath = "chat-friends" + "/" + "chat-friend";
                            XmlNode node2 = node.SelectSingleNode(xpath);
                            if (node2 == null)
                            {
                                LogHelper.LogReceivedSipMessage(sipMsg);
                                base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                            }
                            else
                            {
                                string uri = XmlHelper.ReadXmlAttributeString(node2, "uri");
                                if (uri.Length == 0)
                                {
                                    LogHelper.LogReceivedSipMessage(sipMsg);
                                    base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                                }
                                else if (this.Contacts.FindContact(uri) == null)
                                {
                                    Imps.Client.Core.ContactGroup item = this.Groups[-1] as Imps.Client.Core.ContactGroup;
                                    if (item == null)
                                    {
                                        item = new Imps.Client.Core.ContactGroup(base.Owner, -1, StringTable.ContactGroup.ChatFriendGroup);
                                        this.Groups.Add(item);
                                    }
                                    Imps.Client.Core.ChatFriend contact = new Imps.Client.Core.ChatFriend(base.Owner, uri);
                                    this.AddContact(contact);
                                    item.Contacts.Add(contact);
                                    this.InnerOnContactChanged(new ContactChangedEventArgs(contact, ContactEventType.Added));
                                    this.Version = text;
                                    this.SaveContactListXml();
                                }
                            }
                        }
                    }
                }
                else
                {
                    LogHelper.LogReceivedSipMessage(sipMsg);
                    switch (sipMsg.Message.StatusCode)
                    {
                        case 400:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                            return;

                        case 500:
                            base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                            return;
                    }
                    base.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ChatFriend.AddFailed), op);
                }
            }
        }

        private void finalResponseReceived_AddToBlackList(object sender, SipResponseReceivedEventArgs e)
        {
            SipResponse sipMsg = e.Response;
            AsyncBizOperation op = (AsyncBizOperation) sipMsg.Request.Context;
            if (!sipMsg.IsOK)
            {
                LogHelper.L

⌨️ 快捷键说明

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