/// <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); } }
/// <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); }