public void UpdateEmailAddresses(Mailbox mailbox) { ProxyAddressCollection emailAddresses = mailbox.EmailAddresses; for (int i = emailAddresses.Count - 1; i >= 0; i--) { if (emailAddresses[i] is SmtpProxyAddress && !((SmtpProxyAddress)emailAddresses[i]).IsPrimaryAddress) { emailAddresses.RemoveAt(i); } } if (this.EmailAddresses != null) { foreach (string text in this.EmailAddresses) { ProxyAddress proxyAddress = ProxyAddress.Parse(text); if (proxyAddress is InvalidProxyAddress) { InvalidProxyAddress invalidProxyAddress = proxyAddress as InvalidProxyAddress; throw new FaultException(invalidProxyAddress.ParseException.Message); } if (emailAddresses.Contains(proxyAddress)) { throw new FaultException(string.Format(OwaOptionStrings.DuplicateProxyAddressError, text)); } emailAddresses.Add(proxyAddress); } } base[MailEnabledRecipientSchema.EmailAddresses] = emailAddresses; }
public static void UpdateEmailAddresses(DataRow inputRow, DataTable dataTable, DataObjectStore store) { MailContact mailContact = store.GetDataObject("MailContact") as MailContact; ProxyAddressCollection emailAddresses = mailContact.EmailAddresses; IEnumerable <object> enumerable = inputRow["FilteredEmailAddresses"] as IEnumerable <object>; string text = inputRow["ExternalEmailAddress"] as string; if (enumerable != null) { for (int i = emailAddresses.Count - 1; i >= 0; i--) { if (emailAddresses[i] is SmtpProxyAddress && !((SmtpProxyAddress)emailAddresses[i]).IsPrimaryAddress) { emailAddresses.RemoveAt(i); } } } if (text != null) { ProxyAddressBase proxyAddressBase = ProxyAddress.Parse(text).ToPrimary(); if (!(proxyAddressBase is InvalidProxyAddress) && mailContact.ExternalEmailAddress != proxyAddressBase) { int num = emailAddresses.IndexOf((ProxyAddress)proxyAddressBase); if (num >= 0) { emailAddresses.MakePrimary(num); } else { emailAddresses.Add(proxyAddressBase); } int num2 = emailAddresses.IndexOf(mailContact.ExternalEmailAddress); if (num2 >= 0 && (!(emailAddresses[num2] is SmtpProxyAddress) || !emailAddresses[num2].IsPrimaryAddress)) { emailAddresses.RemoveAt(num2); } } } if (enumerable != null) { foreach (object obj in enumerable) { string text2 = (string)obj; ProxyAddress proxyAddress = ProxyAddress.Parse(text2); if (proxyAddress is InvalidProxyAddress) { InvalidProxyAddress invalidProxyAddress = proxyAddress as InvalidProxyAddress; throw new FaultException(invalidProxyAddress.ParseException.Message); } if (emailAddresses.Contains(proxyAddress)) { throw new FaultException(string.Format(Strings.DuplicateProxyAddressError, text2)); } emailAddresses.Add(proxyAddress); } } inputRow["EmailAddresses"] = emailAddresses; store.SetModifiedColumns(new List <string> { "EmailAddresses" }); }