/// <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);
            }
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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);
            }
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
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);
        }