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));
        }
Esempio n. 2
0
        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.");
            }
        }
Esempio n. 3
0
        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.");
            }
        }