protected static string MergeAddressList(CRSMEmail email, string addressList, string sourceList) { if (string.IsNullOrEmpty(addressList)) { return(sourceList); } AddressList result = new AddressList(); var index = new HashSet <string>(); foreach (Mailbox box in AddressList.Parse(addressList)) { if (index.Contains(box.Address)) { continue; } if (email.MailTo != null && email.MailTo.Contains(box.Address)) { continue; } if (email.MailCc != null && email.MailCc.Contains(box.Address)) { continue; } if (email.MailBcc != null && email.MailBcc.Contains(box.Address)) { continue; } index.Add(box.Address); result.Add(box); } return(result.Count == 0 ? sourceList : (string.IsNullOrEmpty(sourceList) ? result.ToString() : sourceList + "; " + result)); }
private string InternalHandleNotificationsCommand(MsnConversation msnConversation, IList <string> arguments) { string contactMail = msnConversation.Contact.Account; lock (_notificationsLock) { EnsureNotificationContactFilter(); bool settingChanged = false; string onOff = arguments.Count > 0 ? arguments[0].Trim() : String.Empty; if (onOff == "off") { settingChanged = _notificationContactFilter.AddAddress(contactMail); } else if (onOff == "on") { settingChanged = _notificationContactFilter.RemoveAddress(contactMail); } if (settingChanged) { using (ConfigurationServiceAgent configurationAgent = new ConfigurationServiceAgent()) { configurationAgent.SetStringValue(ConfigurationModule.Messenger, ConfigurationKey.Messenger.MsnNotificationFilterList, _notificationContactFilter.ToString()); } } return(_notificationContactFilter.ContainsAddress(contactMail) ? "Notifications are off." : "Notifications are on."); } }
private string InternalHandleAlertsCommand(MsnConversation msnConversation, IList <string> arguments) { string contactMail = msnConversation.Contact.Account; lock (_alertsLock) { EnsureAlertContactFilter(); bool settingChanged = false; string onOff = arguments.Count > 0 ? arguments[0].Trim() : String.Empty; if (onOff == "off") { settingChanged = _alertContactFilter.AddAddress(contactMail); } else if (onOff == "on") { settingChanged = _alertContactFilter.RemoveAddress(contactMail); } if (settingChanged) { Proxies.ConfigurationService.SetStringValue(ConfigurationModule.Messenger, ConfigurationKey.Messenger.MsnAlertFilterList, _alertContactFilter.ToString()).Wait(); } return(_alertContactFilter.ContainsAddress(contactMail) ? "Alerts are off." : "Alerts are on."); } }