/// <summary> /// Попытаться получить уведомление из команды ТУ /// </summary> private bool TryGetNotif(Command cmd, out Notification notif) { string cmdDataStr = cmd.GetCmdDataStr(); int sepInd = cmdDataStr.IndexOf(CmdAddrSep); if (sepInd >= 0) { string recipient = cmdDataStr.Substring(0, sepInd); string text = cmdDataStr.Substring(sepInd + 1); notif = new Notification() { Text = text }; if (addressBook == null) { // добавление данных получателя, явно указанных в команде ТУ notif.PhoneNumbers.Add(recipient); notif.Emails.Add(recipient); } else { // поиск адресов получателей в адресной книге AB.AddressBook.ContactGroup contactGroup = addressBook.FindContactGroup(recipient); if (contactGroup == null) { AB.AddressBook.Contact contact = addressBook.FindContact(recipient); if (contact == null) { // добавление данных получателя, явно указанных в команде ТУ notif.PhoneNumbers.Add(recipient); notif.Emails.Add(recipient); } else { // добавление данных получателя из контакта notif.PhoneNumbers.AddRange(contact.PhoneNumbers); notif.Emails.AddRange(contact.Emails); } } else { // добавление данных получателей из группы контактов foreach (AB.AddressBook.Contact contact in contactGroup.Contacts) { notif.PhoneNumbers.AddRange(contact.PhoneNumbers); notif.Emails.AddRange(contact.Emails); } } } return(true); } else { notif = null; return(false); } }
/// <summary> /// Попытаться получить почтовое сообщение из команды ТУ /// </summary> private bool TryGetMessage(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> /// Try to get a mail message from the TU team. /// </summary> private bool TryGetMessage(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); var addresses = new List <string>(); if (addressBook == null) { // add recipient address from command data addresses.Add(recipient); } else { // search for recipients in the address book var contactGroup = addressBook.FindContactGroup(recipient); if (contactGroup == null) { var contact = addressBook.FindContact(recipient); if (contact == null) { // add recipient address from command data addresses.Add(recipient); } else { // add recipient address from contact addresses.AddRange(contact.Emails); } } else { // add recipient addresses from a contact group foreach (var contact in contactGroup.Contacts) { addresses.AddRange(contact.Emails); } } } // post creation 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); }