Beispiel #1
0
        private string getLocalLang(string tranType)
        {
            if (HelperBase.IsHaveString(tranType, "Local"))
            {
                return(getLocalLang());
            }
            else
            {
                string local = HelperBase.GetString(tranType, "(.*)\\-\\>", 1);
                switch (local)
                {
                case "Simplified Chinese":
                    local = "zh-CHS";
                    break;

                case "Traditional Chinese":
                    local = "zh-CHT";
                    break;

                case "Japanese":
                    local = "ja";
                    break;

                default:
                    local = "en";
                    break;
                }
                return(local);
            }
        }
Beispiel #2
0
 /// <summary>
 ///  Initialize view model.
 /// </summary>
 private void InitVmCommands()
 {
     ItemChangedCommand      = new Prism.Commands.DelegateCommand <object>(OnChangedField);
     AssistCommand           = new Prism.Commands.DelegateCommand <object>(OnAssistCommand);
     SelectCompanyOrDriver   = new DelegateCommand <object>(OnCompanyOrDriver);
     CurrentOperationalState = DataPayLoad.Type.Show;
     ContentAreaCommand      = new DelegateCommand <object>(OnContentAreaCommand);
     _helperData             = new HelperBase();
 }
Beispiel #3
0
        public void GroupRemovalTest()
        {
            /// Проверка наличия хотя бы одной группы
            if (!app.Groups.GroupIsHere())
            {
                GroupData groups = new GroupData(HelperBase.GenerateRandomString(10))
                {
                    Header = HelperBase.GenerateRandomString(10),
                    Footer = HelperBase.GenerateRandomString(10)
                };
                /// Создание группы, если ее нет
                app.Groups.Create(groups);
            }

            /// Метод возвращает список групп, список объектов типа GroupData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// oldGroups - Старый список групп
            /// GroupData.GetAll(); - получение списка групп из бд
            List <GroupData> oldGroups = GroupData.GetAll();
            //присваиваем объект с ID
            GroupData toBeRemoved = oldGroups[0];

            /// логин и переход на главную в TestBase
            /// оставшийся метод состоит из кучи методов и находится в GroupHelper
            /// удаляем объект по ID
            app.Groups.Remove(toBeRemoved);

            /// Операция возвращает количесвто групп, не читая их названия
            Assert.AreEqual(oldGroups.Count - 1, app.Groups.GetGroupCount());

            /// Метод возвращает список групп, список объектов типа GroupData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// newGroups - новый список групп
            /// GroupData.GetAll(); - получение списка групп из бд
            List <GroupData> newGroups = GroupData.GetAll();

            /// Берем элемент из старого списка и удаляем элемент при помощи метода RemoveAt
            /// Элемент с порядковым номером 1 имеет индекс 0
            oldGroups.RemoveAt(0);

            /// В данном случае сравниваются не размеры, а списки
            /// сравнивается старый список с удаленным элементом (вот для чего метод RemoveAt() с новым списком
            Assert.AreEqual(oldGroups, newGroups);

            /// Для каждой группы в новом списке проверить, что Id этого элемента не равен Id удаленного
            foreach (GroupData groups in newGroups)
            {
                /// Сравнивается с [0], так удаляли элемент с нулевым индексом
                Assert.AreNotEqual(groups.Id, toBeRemoved.Id);
            }
        }
Beispiel #4
0
        private void MessageTranslate_Click(object sender, EventArgs e)
        {
            string inputStr = this.MessageInput.Text;

            if (inputStr == "" || inputStr == null)
            {
                return;
            }
            if (this.originalStr != inputStr + this.Translateto.Text)
            {
                this.originalStr = inputStr + this.Translateto.Text;
                string tranType   = this.Translateto.Text;
                string InputParse = "";
                string ngramtable = "english";
                string localLang  = this.getLocalLang(tranType);
                if (localLang == "ja")
                {
                    ngramtable = "japanese";
                    InputParse = Words.MeCabParseString(inputStr);
                    //InputParse = Words.MeCabParse(inputStr);
                }
                if (localLang == "zh-CHS" || localLang == "zh-CHT")
                {
                    ngramtable = "chinese";
                    InputParse = Words.ICTCLAParse(inputStr);
                }

                InputParse = Words.replaceSlang(InputParse, ngramtable);// InputParse;
                string linktest = HelperBase.GetString(InputParse, "([^#]*)######", 1);
                InputParse = InputParse.Replace(linktest + "######", "");
                //this.MessageRecord.Text = InputParse;// InputParse;
                //this.MessageRecord.Text = Words.getslang(linktest);
                this.sendLinkTemp = Words.getslang(InputParse);
                //this.sendLinkTemp = Words.getslang(linktest);
                string tranTo      = this.getTranTo();
                string tranStr     = Translate.Microsoft_Get(System.Web.HttpUtility.UrlEncode(InputParse), localLang, tranTo);
                string tranBackStr = Translate.Microsoft_Get(System.Web.HttpUtility.UrlEncode(tranStr), tranTo, localLang);
                toolTips1.is_show = true;
                Int32 Tipheight = 250;
                if (tranBackStr.Length > 100)
                {
                    Tipheight = 400;
                }
                this.sendStrTemp = tranStr + "\n---------------------\n(" + inputStr + ")";
                string showtext = "解析:" + InputParse + "\n--------\n翻訳文:" + tranStr + "\n--------\n折り返し翻訳:" + tranBackStr + "\n--------\n俗語:\n" + this.sendLinkTemp;

                toolTips1.SetToolTip(this.MessageTranslate, showtext, 300, Tipheight);
            }
        }
 public static HelperBase GetInstance(string type)
 {
     lock (LockObj)
     {
         if (HelperCache.ContainsKey(type))
         {
             return(HelperCache[type]);
         }
         var instance = HelperBase.GetInstance(type);
         if (instance != null)
         {
             HelperCache.TryAdd(type, instance);
         }
         return(instance);
     }
 }
Beispiel #6
0
        private ApplicationManager(SettingsJson settings)
        {
            var profile = new ChromeOptions();

            driver   = new ChromeDriver(profile);
            baseURL  = settings.Rdev.Url;
            login    = settings.Rdev.Login;
            password = settings.Rdev.Password;
            driver.Manage().Window.Maximize();
            connectionString = settings.Rdev.ConnectionString;
            loginHelper      = new LoginHelper(this, baseURL, connectionString, login, password);
            navigationHelper = new NavigationHelper(this, baseURL, login, password);
            rdevHelper       = new RdevHelper(this, baseURL);
            dbHelper         = new DbHelper(this, connectionString);
            baseHelper       = new HelperBase(this);
            sysStringHelper  = new SysStringHelper(this, baseURL);
        }
Beispiel #7
0
        private void MessageRecord_LinkClicked(object sender, LinkClickedEventArgs e)
        {
            toolTips1.is_show = true;
            Int32  Tipheight = 150;
            string info      = e.LinkText;

            info = HelperBase.GetString(info, "([^#]*)", 1);
            string msg  = HelperBase.GetString(info, "#([^$])", 1);
            String wiki = null;

            if (msg != "UserName")
            {
                this.http.Encoding = Encoding.UTF8;
                string locallang = this.getLocalLang();
                string uri       = null;
                string reg       = null;
                switch (locallang)
                {
                case "zh-CHS":
                    uri = "http://zh.wikipedia.org/wiki/";
                    break;

                case "zh-CHT":
                    uri = "http://zh-yue.wikipedia.org/wiki/";
                    break;

                case "ja":
                    reg = "bodycontent[^<]*<[^>]*><p>(.*)<\\/p>[^<]*<table";
                    uri = "http://ja.wikipedia.org/wiki/";
                    break;

                default:
                    uri = "http://en.wikipedia.org/wiki/";
                    break;
                }
                wiki = this.http.GetRequest(uri + info);
                wiki = HelperBase.GetString(wiki, reg, 1);
            }

            if (info.Length > 100)
            {
                Tipheight = 300;
            }
            toolTips1.SetToolTip(this.UserName, info + "\n--------\n" + wiki, 300, Tipheight);
        }
Beispiel #8
0
        private void Generate_OnClick(object sender, RoutedEventArgs e)
        {
            var helper    = new AddNewServiceMethodHelper(_serviceProvider);
            var parameter = new Dictionary <string, object>();
            var names     = Regex.Split(txtNames.Text, @"\r\n");

            if (HelperBase.MessageBox("{0} method{1} will be generated. OK?", MessageBoxButton.OKCancel, MessageBoxImage.Question, names.Length, (names.Length > 1 ? "s" : string.Empty)) == MessageBoxResult.Cancel)
            {
                return;
            }
            parameter["names"] = names;
            parameter["async"] = chkAsync.IsChecked;

            if (helper.CanExecute(parameter))
            {
                helper.Execute(parameter);
            }
        }
        private static void WriteDataOnDisk <T>(string dataFormat, List <T> contacts, string filename)
        {
            if (!Path.IsPathRooted(filename))
            {
                filename = HelperBase.GetDataFileFullPath(filename);
            }

            switch (dataFormat)
            {
            case "xml":
                WriteToXml(filename, contacts);
                break;

            case "json":
                WriteToJson(filename, contacts);
                break;
            }
        }
    new void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
        base.Awake();

        fomula = true;
        //basepoint = 1;
        //upgraderate = 1;
        //parambase = 1;
        //paramrate = 1;

        updateText();
    }
        private void Generate_OnClick(object sender, RoutedEventArgs e)
        {
            var helper = new AddNewServiceMethodHelper(_serviceProvider);
            var names  = Regex.Split(txtNames.Text, @"\r\n");

            if (HelperBase.MessageBox("{0} method{1} will be generated. OK?", MessageBoxButton.OKCancel, MessageBoxImage.Question, names.Length, (names.Length > 1 ? "s" : string.Empty)) == MessageBoxResult.Cancel)
            {
                return;
            }
            var input = new ExecuteInput
            {
                MethodNames = names,
                IsAsync     = chkAsync.IsChecked ?? true
            };

            if (helper.CanExecute(input))
            {
                helper.Execute(input);
            }
        }
        private static void WriteToCsv(string fileName, List <ContactDataCsv> contacts)
        {
            contacts.Insert(0, new ContactDataCsv
            {
                Id                     = "Id",
                FirstName              = "FirstName",
                MiddleName             = "MiddleName",
                LastName               = "LastName",
                Nickname               = "Nickname",
                Photo                  = "Photo",
                Title                  = "Title",
                Company                = "Company",
                Address                = "Address",
                TelephoneHome          = "TelephoneHome",
                TelephoneMobile        = "TelephoneMobile",
                TelephoneWork          = "TelephoneWork",
                TelephoneFax           = "TelephoneFax",
                EMail                  = "EMail",
                EMail2                 = "EMail2",
                EMail3                 = "EMail3",
                Homepage               = "Homepage",
                Birthday               = "Birthday",
                Anniversary            = "Anniversary",
                Group                  = "Group",
                Secondary              = "Secondary",
                SecondaryAddress       = "SecondaryAddress",
                SecondaryHome          = " SecondaryHome",
                Notes                  = "Notes",
                TestObjectInstanceName = "TestObjectInstanceName"
            });


            var engine = new FileHelperEngine <ContactDataCsv>();

            engine.WriteFile(HelperBase.GetDataFileFullPath(fileName), contacts);
        }
Beispiel #13
0
        private string getTranTo()
        {
            string local = HelperBase.GetString(this.Translateto.Text, "\\-\\>(.*)", 1);

            switch (local)
            {
            case "Simplified Chinese":
                local = "zh-CHS";
                break;

            case "Traditional Chinese":
                local = "zh-CHT";
                break;

            case "Japanese":
                local = "ja";
                break;

            default:
                local = "en";
                break;
            }
            return(local);
        }
Beispiel #14
0
        static void Main(string[] args)
        {
            // Удобнее пользоваться генератором
            Console.Write("Введите количество тестовых данных, которые надо сгенерировать: ");

            string count1 = Console.ReadLine();
            int    count  = Convert.ToInt32(count1);

            Console.Write("Введите формат тестовых данных (csv \\ xml \\ json \\ excel): ");

            string format = Console.ReadLine();

            string filename;

            if (format == "excel")
            {
                Console.Write("Введите имя файла: ");
                filename = Console.ReadLine() + ".xlsx";
            }
            else
            {
                Console.Write("Введите имя файла: ");

                filename = Console.ReadLine() + "." + format;
            }

            Console.Write("Введите тип данных contacts \\ groups: ");
            string type = Console.ReadLine();

            Console.WriteLine("Результат: Создан файл для " + type + " " + filename + " c " + count + " случайными наборами данных");
            Console.ReadKey();

            if (type == "groups")
            {
                //Создание данных для групп
                List <GroupData> groups = new List <GroupData>();
                //генерация тестовых данных
                for (int i = 0; i < count; i++)
                {
                    groups.Add(new GroupData(HelperBase.GenerateRandomString(10))
                    {
                        Header = HelperBase.GenerateRandomString(10),
                        Footer = HelperBase.GenerateRandomString(10)
                    });
                }

                // Выбор формата для групп
                if (format == "excel")
                {
                    WriteGroupsToExcelFile(groups, filename);
                }
                else
                {
                    //Пишем данные в файл. filename - название файла, в который передается значение
                    StreamWriter writer = new StreamWriter(filename);
                    if (format == "csv")
                    {
                        WriteGroupsToCsvFile(groups, writer);
                    }
                    else if (format == "xml")
                    {
                        WriteGroupsToXmlFile(groups, writer);
                    }
                    else if (format == "json")
                    {
                        WriteGroupsToJsonFile(groups, writer);
                    }
                    else
                    {
                        Console.Out.Write("Unrecognized format" + format);
                    }
                    writer.Close();
                }
            }

            else if (type == "contacts")
            {
                //Создание данных для контактов
                List <ContactData> contacts = new List <ContactData>();
                //генерация тестовых данных
                for (int i = 0; i < count; i++)
                {
                    contacts.Add(new ContactData()
                    {
                        FirstName          = HelperBase.GenerateRandomString(10),
                        MiddleName         = HelperBase.GenerateRandomString(10),
                        Lastname           = HelperBase.GenerateRandomString(10),
                        Nickname           = HelperBase.GenerateRandomString(10),
                        Company            = HelperBase.GenerateRandomString(10),
                        Title              = HelperBase.GenerateRandomString(10),
                        Address            = HelperBase.GenerateRandomString(10),
                        HomePhone          = HelperBase.GenerateRandomString(10),
                        MobilePhone        = HelperBase.GenerateRandomString(10),
                        WorkPhone          = HelperBase.GenerateRandomString(10),
                        Fax                = HelperBase.GenerateRandomString(10),
                        Email1             = HelperBase.GenerateRandomString(10),
                        Email2             = HelperBase.GenerateRandomString(10),
                        Email3             = HelperBase.GenerateRandomString(10),
                        Homepage           = HelperBase.GenerateRandomString(10),
                        Birthday           = HelperBase.GenerateRandomDay(),
                        MonthOfBirth       = HelperBase.GenerateRandomMonth(),
                        YearhOfBirth       = HelperBase.GenerateRandomYear(),
                        AnniversaryDay     = HelperBase.GenerateRandomDay(),
                        MonthOfAnniversary = HelperBase.GenerateRandomMonth(),
                        YearOfAnniversary  = HelperBase.GenerateRandomYear(),
                        SecondaryAddress   = HelperBase.GenerateRandomString(10),
                        SecondaryHomePhone = HelperBase.GenerateRandomString(10),
                        Notes              = HelperBase.GenerateRandomString(10)
                    });
                }

                // Выбор формата для контактов
                if (format == "excel")
                {
                    WriteContactsToExcelFile(contacts, filename);
                }
                else
                {
                    //Пишем данные в файл. filename - название файла, в который передается значение
                    StreamWriter writer = new StreamWriter(filename);
                    if (format == "csv")
                    {
                        WriteContactsToCsvFile(contacts, writer);
                    }
                    else if (format == "xml")
                    {
                        WriteContactsToXmlFile(contacts, writer);
                    }
                    else if (format == "json")
                    {
                        WriteContactsToJsonFile(contacts, writer);
                    }
                    else
                    {
                        Console.Out.Write("Unrecognized format" + format);
                    }
                    writer.Close();
                }
            }

            else
            {
                Console.WriteLine("Unknown data type");
            }
        }
Beispiel #15
0
        public void ContactRemovalTest()
        {
            ///проверяется есть ли контакт, который можно изменить
            ///если нет, то создается
            if (!app.Contacts.ContactIsHere())
            {
                ContactData contact = new ContactData
                {
                    FirstName          = HelperBase.GenerateRandomString(10),
                    MiddleName         = HelperBase.GenerateRandomString(10),
                    Lastname           = HelperBase.GenerateRandomString(10),
                    Nickname           = HelperBase.GenerateRandomString(10),
                    Company            = HelperBase.GenerateRandomString(10),
                    Title              = HelperBase.GenerateRandomString(10),
                    Address            = HelperBase.GenerateRandomString(10),
                    HomePhone          = HelperBase.GenerateRandomString(10),
                    MobilePhone        = HelperBase.GenerateRandomString(10),
                    WorkPhone          = HelperBase.GenerateRandomString(10),
                    Fax                = HelperBase.GenerateRandomString(10),
                    Email1             = HelperBase.GenerateRandomString(10),
                    Email2             = HelperBase.GenerateRandomString(10),
                    Email3             = HelperBase.GenerateRandomString(10),
                    Homepage           = HelperBase.GenerateRandomString(10),
                    Birthday           = HelperBase.GenerateRandomDay(),
                    MonthOfBirth       = HelperBase.GenerateRandomMonth(),
                    YearhOfBirth       = HelperBase.GenerateRandomYear(),
                    AnniversaryDay     = HelperBase.GenerateRandomDay(),
                    MonthOfAnniversary = HelperBase.GenerateRandomMonth(),
                    YearOfAnniversary  = HelperBase.GenerateRandomYear(),
                    SecondaryAddress   = HelperBase.GenerateRandomString(10),
                    SecondaryHomePhone = HelperBase.GenerateRandomString(10),
                    Notes              = HelperBase.GenerateRandomString(10)
                };
                app.Contacts.Create(contact);
            }
            /// Метод возвращает список групп, список объектов типа GroupData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// oldGroups - Старый список групп
            List <ContactData> oldContacts = ContactData.GetAll();
            //присваиваем объект с ID
            ContactData toBeRemoved = oldContacts[0];

            /// логин и переход на главную сидят в TestBase
            /// оставшийся метод состоит из кучи методов и сидит в GroupHelper
            app.Contacts.Remove(toBeRemoved);

            /// Операция возвращает количесвто контактов, не читая их названия
            Assert.AreEqual(oldContacts.Count - 1, app.Contacts.GetContactCount());

            /// Метод возвращает список групп, список объектов типа ContactData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// newGroups - новый список групп
            List <ContactData> newContacts = ContactData.GetAll();

            /// Берем элемент из старого списка и удаляем элемент при помощи метода RemoveAt
            /// Элемент с порядковым номером 1 имеет индекс 0
            oldContacts.RemoveAt(0);

            /// В данном случае сравниваются не размеры, а списки
            /// сравнивается старый список с удаленным элементом (вот для чего метод RemoveAt() с новым списком
            Assert.AreEqual(oldContacts, newContacts);

            /// Для каждого контакта в новом списке проверить, что Id этого элемента равен Id измененного
            foreach (ContactData contact in newContacts)
            {
                /// Сравнивается с [0], так как удаляли элемент с нулевым индексом
                Assert.AreNotEqual(contact.Id, toBeRemoved.Id);
            }
        }
Beispiel #16
0
        public void GroupModificationTest()
        {
            /// Проверка наличия хотя бы одной группы
            if (!app.Groups.GroupIsHere())
            {
                GroupData groups = new GroupData()
                {
                    Name   = HelperBase.GenerateRandomString(10),
                    Header = HelperBase.GenerateRandomString(10),
                    Footer = HelperBase.GenerateRandomString(10)
                };
                /// Создание группы, если ее нет
                app.Groups.Create(groups);
            }

            GroupData newData = new GroupData()
            {
                Name   = HelperBase.GenerateRandomString(10),
                Header = HelperBase.GenerateRandomString(10),
                Footer = HelperBase.GenerateRandomString(10)
            };
            /// Метод возвращает список групп, список объектов типа GroupData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// oldGroups - Старый список групп
            /// GroupData.GetAll(); - получение списка групп из бд
            List <GroupData> oldGroups = GroupData.GetAll();
            //присваиваем объект с ID
            GroupData toBeModified = oldGroups[0];

            /// логин и переход на главную сидят в TestBase
            /// оставшийся метод состоит из кучи методов и сидит в GroupHelper
            /// модификация нужного элемента + новые данные
            app.Groups.Modify(toBeModified, newData);

            /// Операция сравнивает количесвто групп, не читая их названия
            Assert.AreEqual(oldGroups.Count, app.Groups.GetGroupCount());

            /// Метод возвращает список групп, список объектов типа GroupData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// newGroups - новый список групп
            /// GroupData.GetAll(); - получение списка групп из бд
            List <GroupData> newGroups = GroupData.GetAll();

            Console.WriteLine(newData);

            /// Количество элементов в списке
            /// Сравнение не только длины, но и содержимого списков

            /// Берем группу с нулевым индексом, который модифицировали, и меняем ему имя Name = newData.Name
            oldGroups[0].Name = newData.Name;
            /// Сортируем списки перед сравнением
            oldGroups.Sort();
            newGroups.Sort();
            /// И сравнивается старый список с добавленной группой и новый список из приложения
            Assert.AreEqual(oldGroups, newGroups);

            /// Для каждой группы в новом списке проверить, что Id этого элемента равен Id измененного
            foreach (GroupData group in newGroups)
            {
                /// Найти нужный элемент и проверить, что его имя изменилось
                if (group.Id == toBeModified.Id)
                {
                    Assert.AreEqual(newData.Name, group.Name);
                }
            }
        }
Beispiel #17
0
        public void ContactModificationTest()
        {
            ///проверяется есть ли контакт, который можно изменить
            ///если нет, то создается
            if (!app.Contacts.ContactIsHere())
            {
                ContactData contact = new ContactData
                {
                    FirstName          = HelperBase.GenerateRandomString(10),
                    MiddleName         = HelperBase.GenerateRandomString(10),
                    Lastname           = HelperBase.GenerateRandomString(10),
                    Nickname           = HelperBase.GenerateRandomString(10),
                    Company            = HelperBase.GenerateRandomString(10),
                    Title              = HelperBase.GenerateRandomString(10),
                    Address            = HelperBase.GenerateRandomString(10),
                    HomePhone          = HelperBase.GenerateRandomString(10),
                    MobilePhone        = HelperBase.GenerateRandomString(10),
                    WorkPhone          = HelperBase.GenerateRandomString(10),
                    Fax                = HelperBase.GenerateRandomString(10),
                    Email1             = HelperBase.GenerateRandomString(10),
                    Email2             = HelperBase.GenerateRandomString(10),
                    Email3             = HelperBase.GenerateRandomString(10),
                    Homepage           = HelperBase.GenerateRandomString(10),
                    Birthday           = HelperBase.GenerateRandomDay(),
                    MonthOfBirth       = HelperBase.GenerateRandomMonth(),
                    YearhOfBirth       = HelperBase.GenerateRandomYear(),
                    AnniversaryDay     = HelperBase.GenerateRandomDay(),
                    MonthOfAnniversary = HelperBase.GenerateRandomMonth(),
                    YearOfAnniversary  = HelperBase.GenerateRandomYear(),
                    SecondaryAddress   = HelperBase.GenerateRandomString(10),
                    SecondaryHomePhone = HelperBase.GenerateRandomString(10),
                    Notes              = HelperBase.GenerateRandomString(10)
                };
                app.Contacts.Create(contact);
            }

            /// Метод возвращает список контактов, список объектов типа ContactData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// oldGroups - Старый список групп
            List <ContactData> oldContacts = ContactData.GetAll();

            /// Запоминаем элемент с [0] ID
            ContactData toBeModified = oldContacts[0];

            /// логин и переход на главную в TestBase
            /// оставшийся метод состоит из кучи методов в GroupHelper
            /// модификация нужного элемента + новые данные
            ContactData newData = new ContactData
            {
                FirstName          = HelperBase.GenerateRandomString(10),
                MiddleName         = HelperBase.GenerateRandomString(10),
                Lastname           = HelperBase.GenerateRandomString(10),
                Nickname           = HelperBase.GenerateRandomString(10),
                Company            = HelperBase.GenerateRandomString(10),
                Title              = HelperBase.GenerateRandomString(10),
                Address            = HelperBase.GenerateRandomString(10),
                HomePhone          = HelperBase.GenerateRandomString(10),
                MobilePhone        = HelperBase.GenerateRandomString(10),
                WorkPhone          = HelperBase.GenerateRandomString(10),
                Fax                = HelperBase.GenerateRandomString(10),
                Email1             = HelperBase.GenerateRandomString(10),
                Email2             = HelperBase.GenerateRandomString(10),
                Email3             = HelperBase.GenerateRandomString(10),
                Homepage           = HelperBase.GenerateRandomString(10),
                Birthday           = HelperBase.GenerateRandomDay(),
                MonthOfBirth       = HelperBase.GenerateRandomMonth(),
                YearhOfBirth       = HelperBase.GenerateRandomYear(),
                AnniversaryDay     = HelperBase.GenerateRandomDay(),
                MonthOfAnniversary = HelperBase.GenerateRandomMonth(),
                YearOfAnniversary  = HelperBase.GenerateRandomYear(),
                SecondaryAddress   = HelperBase.GenerateRandomString(10),
                SecondaryHomePhone = HelperBase.GenerateRandomString(10),
                Notes              = HelperBase.GenerateRandomString(10)
            };

            app.Contacts.Modify(toBeModified, newData);

            /// Операция сравнивает количесвто контактов, не читая их названия
            Assert.AreEqual(oldContacts.Count, app.Contacts.GetContactCount());

            /// Метод возвращает список групп, список объектов типа GroupData
            /// List - контейнер (коллекция), который хранит набор других объектов
            /// newGroups - новый список групп
            List <ContactData> newContacts = ContactData.GetAll();

            Console.WriteLine(newData);

            /// Берем контакт с нулевым индексом, который модифицировали, и меняем ему имя Name = newData.Name
            oldContacts[0].FirstName = newData.FirstName;
            oldContacts[0].Lastname  = newData.Lastname;

            /// Сортируем списки перед сравнением
            oldContacts.Sort();
            newContacts.Sort();
            /// И сравнивается старыый список с добавленным контактом и новый список из приложения
            Assert.AreEqual(oldContacts, newContacts);

            /// Для каждого контакта в новом списке проверить, что Id этого элемента равен Id измененного
            foreach (ContactData contact in newContacts)
            {
                /// Найти нужный элемент и проверить, что его имя изменилось
                if (contact.Id == toBeModified.Id)
                {
                    Assert.AreEqual(newData.FirstName, contact.FirstName);
                }
            }
        }