Ejemplo n.º 1
0
        /// <summary>
        /// Преобразовать команду в список почтовых сообщений
        /// </summary>
        private bool ParseCmd(Command cmd, out MailMessage message)
        {
            string cmdDataStr = cmd.GetCmdDataStr();
            int    ind1       = cmdDataStr.IndexOf(';');
            int    ind2       = ind1 >= 0 ? cmdDataStr.IndexOf(';', ind1 + 1) : -1;

            if (ind1 >= 0 && ind2 >= 0)
            {
                string recipient = cmdDataStr.Substring(0, ind1);
                string subject   = cmdDataStr.Substring(ind1 + 1, ind2 - ind1 - 1);
                string text      = cmdDataStr.Substring(ind2 + 1);

                List <string> addresses = new List <string>();
                if (addressBook == null)
                {
                    // добавление адреса получателя из данных команды
                    addresses.Add(recipient);
                }
                else
                {
                    // поиск адресов получателей в адресной книге
                    AB.AddressBook.ContactGroup contactGroup = addressBook.FindContactGroup(recipient);
                    if (contactGroup == null)
                    {
                        AB.AddressBook.Contact contact = addressBook.FindContact(recipient);
                        if (contact == null)
                        {
                            // добавление адреса получателя из данных команды
                            addresses.Add(recipient);
                        }
                        else
                        {
                            // добавление адресов получателей из контакта
                            addresses.AddRange(contact.Emails);
                        }
                    }
                    else
                    {
                        // добавление адресов получателей из группы контактов
                        foreach (AB.AddressBook.Contact contact in contactGroup.Contacts)
                        {
                            addresses.AddRange(contact.Emails);
                        }
                    }
                }

                // создание сообщения
                message = CreateMessage(addresses, subject, text);
                return(message != null);
            }
            else
            {
                message = null;
                return(false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Получить список телефонных номеров получателя, используя адресную книгу
        /// </summary>
        private List <string> GetPhoneNumbers(string recipient)
        {
            List <string> phoneNumbers = new List <string>();

            if (addressBook == null)
            {
                // добавление номера получателя напрямую
                phoneNumbers.Add(recipient);
            }
            else
            {
                // поиск телефонных номеров получателей в адресной книге
                AB.AddressBook.ContactGroup contactGroup = addressBook.FindContactGroup(recipient);
                if (contactGroup == null)
                {
                    AB.AddressBook.Contact contact = addressBook.FindContact(recipient);
                    if (contact == null)
                    {
                        // добавление номера получателя напрямую
                        phoneNumbers.Add(recipient);
                    }
                    else
                    {
                        // добавление номеров получателей из контакта
                        phoneNumbers.AddRange(contact.PhoneNumbers);
                    }
                }
                else
                {
                    // добавление номеров получателей из группы контактов
                    foreach (AB.AddressBook.Contact contact in contactGroup.Contacts)
                    {
                        phoneNumbers.AddRange(contact.PhoneNumbers);
                    }
                }
            }

            return(phoneNumbers);
        }