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

📄 contactinfo.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 5 页
字号:
                                this.OtherEmail = this.OtherEmail.CloneWithUserSetValue(text, string.Empty);
                                continue;
                            }
                            case "primary-email":
                            {
                                if (text.Length > 0)
                                {
                                    goto Label_0435;
                                }
                                this.PrimaryEmail = this.PrimaryEmail.CloneWithNoUserSetValue();
                                continue;
                            }
                            case "company":
                            {
                                this.Company = this.Company.CloneWithUserSetValue(text, string.Empty);
                                continue;
                            }
                            case "company-website":
                            {
                                this.CompanyWebsite = this.CompanyWebsite.CloneWithUserSetValue(text, string.Empty);
                                continue;
                            }
                            case "mobile-no-userset":
                            {
                                this.MobileNoUserSet = text;
                                continue;
                            }
                            default:
                            {
                                continue;
                            }
                        }
                        this.Name = this.Name.CloneWithUserSetValue(text, string.Empty);
                        continue;
                    Label_023B:
                        try
                        {
                            DateTime time;
                            if (DateTime.TryParse(text, ref time))
                            {
                                this.BirthDate = this.BirthDate.CloneWithUserSetValue(time);
                            }
                        }
                        catch
                        {
                        }
                        continue;
                    Label_02F9:
                        this.BloodType = this.BloodType.CloneWithUserSetValue(EnumHelper.IntStrToEnum<Imps.Common.BloodType>(text));
                        continue;
                    Label_0334:
                        if (int.TryParse(text, ref num))
                        {
                            this.Occupation = this.Occupation.CloneWithUserSetValue(num);
                        }
                        continue;
                    Label_0435:
                        if (int.TryParse(text, ref num))
                        {
                            this.PrimaryEmail = this.PrimaryEmail.CloneWithUserSetValue((short) num);
                        }
                    }
                    this.UpdateDisplayName();
                }
                finally
                {
                    suspender.Dispose();
                }
            }
        }

        internal void LoadUserSetXmlNode_Need(XmlNode node)
        {
            if (node != null)
            {
                Suspender suspender = new Suspender(this);
                try
                {
                    foreach (XmlAttribute attribute in node.Attributes)
                    {
                        string text = attribute.Value.Trim();
                        switch (attribute.Name)
                        {
                            case "local-name":
                            {
                                if (text.Length <= 0)
                                {
                                    this.Name = this.Name.CloneWithNoUserSetValue();
                                }
                                else
                                {
                                    this.Name = this.Name.CloneWithUserSetValue(text, string.Empty);
                                }
                                continue;
                            }
                            case "online-notify":
                            {
                                this.Owner.OnlineNotify = new ProposedData<bool>(attribute.Value == "1");
                                continue;
                            }
                            case "mobile-no-userset":
                                break;

                            default:
                            {
                                continue;
                            }
                        }
                        this.MobileNoUserSet = text;
                    }
                    this.UpdateDisplayName();
                }
                finally
                {
                    suspender.Dispose();
                }
            }
        }

        protected override void OnPropertiesChanged(PropertiesChangedEventArgs e)
        {
            FuncDispatcher.OnEventHandler<PropertiesChangedEventArgs>(this, this.InnerPropertiesChanged, e);
            base.OnPropertiesChanged(e);
        }

        private void reqCommitChanges_FinalResponseReceived(object sender, SipResponseReceivedEventArgs e)
        {
            SipResponse sipMsg = e.Response;
            if (sipMsg != null)
            {
                if (!sipMsg.IsOK)
                {
                    LogHelper.LogReceivedSipMessage(sipMsg);
                    switch (sipMsg.Message.StatusCode)
                    {
                        case 400:
                            this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                            return;

                        case 0x194:
                            this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                            return;

                        case 500:
                            this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                            return;
                    }
                    this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                }
                else
                {
                    XmlDocument document = new XmlDocument();
                    document.LoadXml(sipMsg.Message.Body);
                    XmlNode node = document.DocumentElement.SelectSingleNode("contacts");
                    if (node == null)
                    {
                        LogHelper.LogReceivedSipMessage(sipMsg);
                        this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                    }
                    else
                    {
                        XmlNode node2 = null;
                        XmlNode node3 = node.SelectSingleNode("buddies");
                        if (node3 != null)
                        {
                            node2 = node3.SelectSingleNode("buddy");
                        }
                        else
                        {
                            XmlNode node4 = node.SelectSingleNode("mobile-buddies");
                            if (node4 != null)
                            {
                                node2 = node4.SelectSingleNode("mobile-buddy");
                            }
                        }
                        if (node2 == null)
                        {
                            LogHelper.LogReceivedSipMessage(sipMsg);
                            this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                        }
                        else
                        {
                            string uriStr = XmlHelper.ReadXmlAttributeString(node2, "uri");
                            if (this.OwnerUri.CompareTo(uriStr) != 0)
                            {
                                LogHelper.LogReceivedSipMessage(sipMsg);
                                this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                            }
                            else
                            {
                                string text2 = XmlHelper.ReadXmlAttributeString(node2, "version");
                                if (text2.Length <= 0)
                                {
                                    LogHelper.LogReceivedSipMessage(sipMsg);
                                    this._owner.Owner.FireImpsErrorInUiThread(new ImpsErrorEventArgs(StringTable.ContactProfile.UpdateProfileFailed));
                                }
                                else
                                {
                                    this.LoadUserSetXmlNode(node2);
                                    this.UserSetVersion = text2;
                                    this.Owner.Owner.ContactList.SaveContactListXml();
                                }
                            }
                        }
                    }
                }
            }
        }

        internal void UpdateDisplayName()
        {
            if (this.Name.HasUserSetData && !string.IsNullOrEmpty(this.Name.UserSetData.OriginalValue))
            {
                this.DisplayName = this.Name.UserSetData.OriginalValue;
            }
            else if (this.Nickname.Value.Length != 0)
            {
                this.DisplayName = this.Nickname.Value;
            }
            else if (this.Name.Value.Length != 0)
            {
                this.DisplayName = this.Name.Value;
            }
            else
            {
                this.DisplayName = GetDisplayNameFromUri(this.Owner.Uri);
            }
        }

        public int Age
        {
            get
            {
                if (this.IsBirthdayValid != null)
                {
                    ContactInfoItem<DateTime> birthDate = this.BirthDate;
                    if ((birthDate != null) && (birthDate.Value > PersonalInfoBase.NullBirthDate))
                    {
                        return ImpsHelper.BirthdayToAge(birthDate.Value, Imps.Client.Core.User.ServerTime);
                    }
                }
                return 0;
            }
        }

        public ContactInfoItem<DateTime> BirthDate
        {
            get
            {
                if (this.IsBirthdayValid != null)
                {
                    return base.InnerGetPropertyValue<ContactInfoItem<DateTime>>("birth-date", new ContactInfoItem<DateTime>(PersonalInfoBase.NullBirthDate));
                }
                return new ContactInfoItem<DateTime>(PersonalInfoBase.NullBirthDate);
            }
            internal set
            {
                base.InnerSetPropertyValue<ContactInfoItem<DateTime>>("birth-date", value);
            }
        }

        public ContactInfoItem<Imps.Common.BloodType> BloodType
        {
            get
            {
                return base.InnerGetPropertyValue<ContactInfoItem<Imps.Common.BloodType>>("blood-type");
            }
            internal set
            {
                base.InnerSetPropertyValue<ContactInfoItem<Imps.Common.BloodType>>("blood-type", value);
            }
        }

        public ContactInfoItem<int> City
        {
            get
            {
                return base.InnerGetPropertyValue<ContactInfoItem<int>>("city");
            }
            internal set
            {
                base.InnerSetPropertyValue<ContactInfoItem<int>>("city", value);
            }
        }

        public ContactInfoItem<string> Company

⌨️ 快捷键说明

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