/// <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 SmsMessage message) { string cmdDataStr = cmd.GetCmdDataStr(); int ind1 = cmdDataStr.IndexOf(';'); if (ind1 >= 0) { string recipient = cmdDataStr.Substring(0, ind1); string text = cmdDataStr.Substring(ind1 + 1); List <string> phone_numbers = new List <string>(); if (addressBook == null) { // добавление телефона получателя из данных команды phone_numbers.Add(recipient); } else { // поиск телефонов получателей в адресной книге AB.AddressBook.ContactGroup contactGroup = addressBook.FindContactGroup(recipient); if (contactGroup == null) { AB.AddressBook.Contact contact = addressBook.FindContact(recipient); if (contact == null) { // добавление телефона получателя из данных команды phone_numbers.Add(recipient); } else { // добавление телефона получателя из контакта phone_numbers.AddRange(contact.PhoneNumbers); } } else { // добавление телефонов получателей из группы контактов foreach (AB.AddressBook.Contact contact in contactGroup.Contacts) { phone_numbers.AddRange(contact.PhoneNumbers); } } } // создание сообщения message = CreateMessage(phone_numbers, text); return(message != null); } else { message = 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); } }
private void btnAddContact_Click(object sender, EventArgs e) { // добавление контакта TreeNode contactGroupNode = treeView.SelectedNode?.FindClosest(typeof(AddressBook.ContactGroup)); if (contactGroupNode != null) { AddressBook.Contact contact = new AddressBook.Contact(AbPhrases.NewContact); TreeNode contactNode = CreateContactNode(contact); treeView.Add(contactGroupNode, contactNode); contactNode.BeginEdit(); Modified = true; } }
/// <summary> /// Создать узел дерева для контакта /// </summary> private TreeNode CreateContactNode(AddressBook.Contact contact) { TreeNode contactNode = TreeViewUtils.CreateNode(contact, "contact.png", true); foreach (AddressBook.ContactRecord contactRecord in contact.ContactRecords) { if (contactRecord is AddressBook.PhoneNumber) { contactNode.Nodes.Add(CreatePhoneNumberNode(contactRecord)); } else if (contactRecord is AddressBook.Email) { contactNode.Nodes.Add(CreateEmailNode(contactRecord)); } } return(contactNode); }
/// <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); }