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