Esempio n. 1
0
        /// <summary>
        /// Download address book from file
        /// </summary>
        public bool Load(string fileName, out string errMsg)
        {
            try {
                // address book cleaning
                ContactGroups.Clear();

                // loading address book
                var xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);

                var contactGroupNodes = xmlDoc.DocumentElement.SelectNodes("ContactGroup");

                foreach (XmlElement contactGroupElem in contactGroupNodes)
                {
                    var contactGroup = new ContactGroup(contactGroupElem.GetAttribute("name"))
                    {
                        Parent = this
                    };

                    var contactNodes = contactGroupElem.SelectNodes("Contact");
                    foreach (XmlElement contactElem in contactNodes)
                    {
                        var contact = new Contact(contactElem.GetAttribute("name"))
                        {
                            Parent = contactGroup
                        };

                        var phoneNumberNodes = contactElem.SelectNodes("PhoneNumber");
                        foreach (XmlElement phoneNumberElem in phoneNumberNodes)
                        {
                            contact.ContactRecords.Add(
                                new PhoneNumber(phoneNumberElem.InnerText)
                            {
                                Parent = contact
                            });
                        }

                        var emailNodes = contactElem.SelectNodes("Email");
                        foreach (XmlElement emailElem in emailNodes)
                        {
                            contact.ContactRecords.Add(
                                new Email(emailElem.InnerText)
                            {
                                Parent = contact
                            });
                        }

                        contact.ContactRecords.Sort();
                        contactGroup.Contacts.Add(contact);
                    }

                    contactGroup.Contacts.Sort();
                    ContactGroups.Add(contactGroup);
                }

                ContactGroups.Sort();

                errMsg = "";
                return(true);
            } catch (Exception ex) {
                errMsg = AbPhrases.LoadAddressBookError + ":" + Environment.NewLine + ex.Message;
                return(false);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Загрузить адресную книгу из файла
        /// </summary>
        public bool Load(string fileName, out string errMsg)
        {
            try
            {
                // очистка адресной книги
                ContactGroups.Clear();

                // загрузка адресной книги
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);

                XmlNodeList contactGroupNodes = xmlDoc.DocumentElement.SelectNodes("ContactGroup");

                foreach (XmlElement contactGroupElem in contactGroupNodes)
                {
                    ContactGroup contactGroup = new ContactGroup(contactGroupElem.GetAttribute("name"));
                    contactGroup.Parent = this;

                    XmlNodeList contactNodes = contactGroupElem.SelectNodes("Contact");
                    foreach (XmlElement contactElem in contactNodes)
                    {
                        Contact contact = new Contact(contactElem.GetAttribute("name"));
                        contact.Parent = contactGroup;

                        XmlNodeList phoneNumberNodes = contactElem.SelectNodes("PhoneNumber");
                        foreach (XmlElement phoneNumberElem in phoneNumberNodes)
                        {
                            contact.ContactRecords.Add(
                                new PhoneNumber(phoneNumberElem.InnerText)
                            {
                                Parent = contact
                            });
                        }

                        XmlNodeList emailNodes = contactElem.SelectNodes("Email");
                        foreach (XmlElement emailElem in emailNodes)
                        {
                            contact.ContactRecords.Add(
                                new Email(emailElem.InnerText)
                            {
                                Parent = contact
                            });
                        }

                        contact.ContactRecords.Sort();
                        contactGroup.Contacts.Add(contact);
                    }

                    contactGroup.Contacts.Sort();
                    ContactGroups.Add(contactGroup);
                }

                ContactGroups.Sort();

                errMsg = "";
                return(true);
            }
            catch (Exception ex)
            {
                errMsg = AbPhrases.LoadAddressBookError + ":" + Environment.NewLine + ex.Message;
                return(false);
            }
        }