Пример #1
0
        /// <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);
            }
        }
Пример #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);
            }
        }
Пример #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);
            }
        }
Пример #4
0
        private void btnAddContactGroup_Click(object sender, EventArgs e)
        {
            // добавление группы контактов
            AddressBook.ContactGroup contactGroup = new AddressBook.ContactGroup(AbPhrases.NewContactGroup);
            TreeNode contactGroupNode             = CreateContactGroupNode(contactGroup);

            treeView.Add(rootNode, contactGroupNode);
            contactGroupNode.BeginEdit();
            Modified = true;
        }
Пример #5
0
        private void btnAddContactGroup_Click(object sender, EventArgs e)
        {
            // add contact group
            var contactGroup     = new AddressBook.ContactGroup(AbPhrases.NewContactGroup);
            var contactGroupNode = CreateContactGroupNode(contactGroup);

            treeView.Add(rootNode, contactGroupNode);
            contactGroupNode.BeginEdit();
            Modified = true;
        }
Пример #6
0
        /// <summary>
        /// Создать узел дерева для группы контактов
        /// </summary>
        private TreeNode CreateContactGroupNode(AddressBook.ContactGroup contactGroup)
        {
            string   imageKey         = contactGroup.Contacts.Count > 0 ? "folder_open.png" : "folder_closed.png";
            TreeNode contactGroupNode = TreeViewUtils.CreateNode(contactGroup, imageKey, true);

            foreach (AddressBook.Contact contact in contactGroup.Contacts)
            {
                contactGroupNode.Nodes.Add(CreateContactNode(contact));
            }

            return(contactGroupNode);
        }
Пример #7
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);
        }