📄 contactinfo.cs
字号:
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 + -