示例#1
0
        /// <summary>
        /// Создание модели Шаблонов и ролей в них
        /// </summary>
        /// <param name="path">Путь сохранения</param>
        /// <param name="infoUserTemlateAndRule">Шаблоны пользователей и ролей</param>
        public void AddInfoRuleTemplate(string path, InfoUserTemlateAndRule infoUserTemlateAndRule)
        {
            var        doc   = LogicaXml.LogicaXml.Document(path);
            XmlElement xRoot = doc.DocumentElement;

            foreach (var templates in infoUserTemlateAndRule.Template)
            {
                XmlElement template = doc.CreateElement("Template");
                template.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "NameTemplate", templates.NameTemplate));
                template.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Info", templates.Info));
                template.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Category", templates.Category));
                foreach (var segments in templates.Sigment)
                {
                    XmlElement segment = doc.CreateElement("Sigment");
                    segment.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Name", segments.Name));
                    foreach (var app in segments.Applications)
                    {
                        XmlElement application = doc.CreateElement("Applications");
                        application.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Name", app.Name));
                        foreach (var rules in app.RuleTemplate)
                        {
                            XmlElement rule = doc.CreateElement("RuleTemplate");
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "NameRule", rules.NameRule));
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Info", rules.Info));
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Category", rules.Category));
                            application.AppendChild(rule);
                        }
                        segment.AppendChild(application);
                    }
                    template.AppendChild(segment);
                }
                xRoot.AppendChild(template);
            }
            doc.Save(path);
        }
示例#2
0
        /// <summary>
        /// Метод добавление в файл пользователй и их ролей с шаблонами
        /// </summary>
        /// <param name="path">Путь сохранения</param>
        /// <param name="infoUserTemlateAndRule">Шаблоны пользователей и ролей</param>
        public void AddInfoUserRuleTemplate(string path, InfoUserTemlateAndRule infoUserTemlateAndRule)
        {
            var        doc          = LogicaXml.LogicaXml.Document(path);
            XmlElement xRoot        = doc.DocumentElement;
            XmlElement infoUserRule = doc.CreateElement("Users");

            foreach (var user in infoUserTemlateAndRule.Users)
            {
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Name", user.Name));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Code", user.Code.ToString()));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "TabelNumber", user.TabelNumber));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Department", user.Department));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Position", user.Position));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Organization", user.Organization));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Bloking", user.Bloking));
                infoUserRule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "NumberActiveDirectory", user.NumberActiveDirectory));
                foreach (var templates in user.Template)
                {
                    XmlElement template = doc.CreateElement("Template");
                    template.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "NameTemplate", templates.NameTemplate));
                    template.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Info", templates.Info));
                    template.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Category", templates.Category));
                    infoUserRule.AppendChild(template);
                }
                foreach (var segments in user.Sigment)
                {
                    XmlElement segment = doc.CreateElement("Sigment");
                    segment.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Name", segments.Name));
                    foreach (var app in segments.Applications)
                    {
                        XmlElement application = doc.CreateElement("Applications");
                        application.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Name", app.Name));
                        foreach (var rules in app.RuleTemplate)
                        {
                            XmlElement rule = doc.CreateElement("RuleTemplate");
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "NameRule", rules.NameRule));
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Context", rules.Context));
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Info", rules.Info));
                            rule.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Category", rules.Category));
                            application.AppendChild(rule);
                        }
                        segment.AppendChild(application);
                    }
                    infoUserRule.AppendChild(segment);
                }
                xRoot.AppendChild(infoUserRule);
            }
            doc.Save(path);
        }
示例#3
0
 /// <summary>
 /// Сохранение отчета по Информации о пользователях и их ролях и шаблонах
 /// </summary>
 /// <param name="path">Путь сохранения</param>
 /// <param name="infoUserTemlateAndRule">Шаблоны пользователей и ролей</param>
 public static void CreateFileInfoUserRuleTemplate(string pathReport, InfoUserTemlateAndRule infoUserTemlateAndRule)
 {
     if (File.Exists(pathReport))
     {
         XmlReadOrWrite read = new XmlReadOrWrite();
         if (infoUserTemlateAndRule.Users != null)
         {
             read.AddInfoUserRuleTemplate(pathReport, infoUserTemlateAndRule);
         }
         if (infoUserTemlateAndRule.Template != null)
         {
             read.AddInfoRuleTemplate(pathReport, infoUserTemlateAndRule);
         }
     }
     else
     {
         var convert = new Converts.ConvettToXml.XmlConvert();
         convert.SerializerClassToXml(pathReport, infoUserTemlateAndRule, typeof(InfoUserTemlateAndRule));
     }
 }
示例#4
0
        /// <summary>
        /// Загрузка справочников по шаблонам ролям пользователям
        /// </summary>
        /// <param name="infoUserTemlateAndRule">Шаблоны роли пользователи</param>
        /// <returns></returns>
        public ModelPathReport LoadInfoUserTemplateAndRuleToDataBase(InfoUserTemlateAndRule infoUserTemlateAndRule)
        {
            var sql = new SelectSql();

            return(sql.LoadModelToDataBase(infoUserTemlateAndRule, 38, 3));
        }
示例#5
0
        /// <summary>
        /// Поиск пользователей и ролей по сегментам
        /// </summary>
        /// <param name="statusButton">Кнопка запуска</param>
        /// <param name="libraryAutomation">Автоматизация библиотека</param>
        /// <param name="pathJournalInfoUserTemplateRule">Путь сохранения информации по пользователям и их ролям с шаблонами</param>
        private void FindUserTemplateAndRule(StatusButtonMethod statusButton, LibraryAutomations libraryAutomation, string pathJournalInfoUserTemplateRule)
        {
            var rowNumber = 1;

            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, ItElementName.ApplicationTabUsers);
            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, ItElementName.FindUsers);
            libraryAutomation.IsEnableElement(ItElementName.ListRowUsersGrid);
            if (File.Exists(pathJournalInfoUserTemplateRule))
            {
                var readFileInfoRule     = new LibaryXMLAuto.ReadOrWrite.XmlReadOrWrite();
                var fileInfoRuleTemplate = (InfoUserTemlateAndRule)readFileInfoRule.ReadXml(pathJournalInfoUserTemplateRule, typeof(InfoUserTemlateAndRule));
                if (fileInfoRuleTemplate.Users != null)
                {
                    var nameAttributes = fileInfoRuleTemplate.Users.Last().Name;
                    var index          = 0;
                    var stop           = false;
                    libraryAutomation.SelectAutomationColrction(libraryAutomation.FindElement).Cast <AutomationElement>()
                    .Where(elem => elem.Current.Name.Contains("List`"))
                    .ToList().ForEach(element =>
                    {
                        if (stop)
                        {
                            return;
                        }
                        else
                        {
                            element.SetFocus();
                            AutoIt.AutoItX.Sleep(2000);
                            if (libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation.SelectAutomationColrction(element)
                                                                                                  .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Пользователь"))) == nameAttributes)
                            {
                                rowNumber = index;
                                rowNumber++;
                                stop = true;
                            }
                            index++;
                        }
                    });
                }
            }

            AutomationElement automationElementRow;

            while ((automationElementRow = libraryAutomation.IsEnableElements(string.Format(ItElementName.ListRowUsers, rowNumber), null, true, 5)) != null)
            {
                if (statusButton.Iswork)
                {
                    var infoRuleTemplate = new InfoUserTemlateAndRule()
                    {
                        Users = new Users[1]
                    };
                    automationElementRow.SetFocus();
                    AutoIt.AutoItX.Sleep(1000);
                    infoRuleTemplate.Users[0] = new Users()
                    {
                        Name = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Пользователь"))),
                        Code = Convert.ToInt32(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                                   libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                                                   .First(elem => elem.Current.Name.Contains("Код НО")))),
                        TabelNumber = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Табельный номер"))),
                        Department = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Отдел"))),
                        Position = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Должность"))),
                        Organization = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Организация"))),
                        Bloking = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Блокировка"))),
                        NumberActiveDirectory = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Учетная запись")))
                    };
                    var containerTab = libraryAutomation.SelectAutomationColrction(libraryAutomation.IsEnableElements(ItElementName.ApplicationContainerTab, null, true));
                    PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, ItElementName.ApplicationTabTemplate, containerTab[1]);
                    var templatesNumber = 1;

                    List <AutomationElement> listTemplate = libraryAutomation.SelectAutomationColrction(
                        libraryAutomation.IsEnableElements(ItElementName.ListAllTemplatesUsers, containerTab[1], true, 1)).Cast <AutomationElement>()
                                                            .Where(elem => elem.Current.Name.Contains("List`1 row")).ToList();
                    infoRuleTemplate.Users[0].Template = new Template[listTemplate.Count()];

                    foreach (AutomationElement automationElement in listTemplate)
                    {
                        automationElement.SetFocus();
                        infoRuleTemplate.Users[0].Template[templatesNumber - 1] = new Template()
                        {
                            NameTemplate = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                libraryAutomation.SelectAutomationColrction(automationElement)
                                .Cast <AutomationElement>()
                                .First(elem => elem.Current.Name.Contains("Шаблон"))),

                            Info = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                libraryAutomation.SelectAutomationColrction(automationElement)
                                .Cast <AutomationElement>()
                                .First(elem => elem.Current.Name.Contains("Описание"))),

                            Category = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                libraryAutomation.SelectAutomationColrction(automationElement)
                                .Cast <AutomationElement>()
                                .First(elem => elem.Current.Name.Contains("Категории"))),
                        };
                        templatesNumber++;
                    }

                    var sigmentNumber = 1;
                    PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, ItElementName.ApplicationTabRule, containerTab[1]);

                    List <AutomationElement> listSegment = libraryAutomation.SelectAutomationColrction(
                        libraryAutomation.IsEnableElements(ItElementName.ListAllRulesUsers, containerTab[1], true, 1)).Cast <AutomationElement>()
                                                           .Where(elem => elem.Current.Name.Contains("List`1 row")).ToList();
                    infoRuleTemplate.Users[0].Sigment = new Sigment[listSegment.Count()];
                    foreach (AutomationElement automationElementTemplates in listSegment)
                    {
                        automationElementTemplates.SetFocus();
                        SendKeys.SendWait(ButtonConstant.Plus);

                        infoRuleTemplate.Users[0].Sigment[sigmentNumber - 1] = new Sigment()
                        {
                            Name = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                libraryAutomation.SelectAutomationColrction(automationElementTemplates)
                                .Cast <AutomationElement>()
                                .First(elem => elem.Current.Name.Contains("Сегмент")))
                        };

                        List <AutomationElement> listApp = libraryAutomation.SelectAutomationColrction(automationElementTemplates).Cast <AutomationElement>()
                                                           .Where(elem => elem.Current.Name.Contains("Apps row")).ToList();
                        infoRuleTemplate.Users[0].Sigment[sigmentNumber - 1].Applications = new Applications[listApp.Count()];

                        var rulesAppNumber = 1;
                        foreach (AutomationElement automationElementTemplatesRulesApp in listApp)
                        {
                            automationElementTemplatesRulesApp.SetFocus();
                            SendKeys.SendWait(ButtonConstant.Plus);
                            infoRuleTemplate.Users[0].Sigment[sigmentNumber - 1].Applications[rulesAppNumber - 1] = new Applications()
                            {
                                Name = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                    libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesApp)
                                    .Cast <AutomationElement>()
                                    .First(elem => elem.Current.Name.Contains("Приложение")))
                            };

                            List <AutomationElement> listRole = libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesApp).Cast <AutomationElement>()
                                                                .Where(elem => elem.Current.Name.Contains("RoleList row")).ToList();
                            infoRuleTemplate.Users[0].Sigment[sigmentNumber - 1].Applications[rulesAppNumber - 1].RuleTemplate = new RuleTemplate[listRole.Count()];

                            var rulesRulesAppRuleNumber = 1;
                            foreach (AutomationElement automationElementTemplatesRulesAppRule in listRole)
                            {
                                infoRuleTemplate.Users[0].Sigment[sigmentNumber - 1].Applications[rulesAppNumber - 1].RuleTemplate[rulesRulesAppRuleNumber - 1] = new RuleTemplate()
                                {
                                    NameRule = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                        libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesAppRule)
                                        .Cast <AutomationElement>()
                                        .First(elem => elem.Current.Name.Contains("Роль"))),

                                    Info = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                        libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesAppRule)
                                        .Cast <AutomationElement>()
                                        .First(elem => elem.Current.Name.Contains("Описание"))),

                                    Category = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                        libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesAppRule)
                                        .Cast <AutomationElement>()
                                        .First(elem => elem.Current.Name.Contains("Категории"))),
                                };
                                rulesRulesAppRuleNumber++;
                            }
                            automationElementTemplatesRulesApp.SetFocus();
                            AutoIt.AutoItX.Sleep(500);
                            SendKeys.SendWait(ButtonConstant.Minus);
                            rulesAppNumber++;
                        }
                        automationElementTemplates.SetFocus();
                        AutoIt.AutoItX.Sleep(500);
                        SendKeys.SendWait(ButtonConstant.Minus);
                        sigmentNumber++;
                    }
                    LibaryXMLAuto.ErrorJurnal.ReportMigration.CreateFileInfoUserRuleTemplate(pathJournalInfoUserTemplateRule, infoRuleTemplate);
                    rowNumber++;
                }
                else
                {
                    break;
                }
            }
        }
示例#6
0
        /// <summary>
        /// Поиск только шаблонов и ролей в них
        /// </summary>
        /// <param name="statusButton">Кнопка запуска</param>
        /// <param name="libraryAutomation">Автоматизация библиотека</param>
        /// <param name="pathJournalInfoUserTemplateRule">Путь сохранения информации по пользователям и их ролям с шаблонами</param>
        private void FindAllTemplateAndRule(StatusButtonMethod statusButton, LibraryAutomations libraryAutomation, string pathJournalInfoUserTemplateRule)
        {
            var rowNumber = 1;

            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, ItElementName.ApplicationTabRules);
            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, ItElementName.SendRulesTemplate);
            libraryAutomation.IsEnableElement(ItElementName.ListRowRulesGrid);
            if (File.Exists(pathJournalInfoUserTemplateRule))
            {
                var readFileInfoRule     = new LibaryXMLAuto.ReadOrWrite.XmlReadOrWrite();
                var fileInfoRuleTemplate = (InfoUserTemlateAndRule)readFileInfoRule.ReadXml(pathJournalInfoUserTemplateRule, typeof(InfoUserTemlateAndRule));
                if (fileInfoRuleTemplate.Template != null)
                {
                    var nameAttributes = fileInfoRuleTemplate.Template.Last().NameTemplate;
                    var index          = 0;
                    var stop           = false;
                    libraryAutomation.SelectAutomationColrction(libraryAutomation.FindElement)
                    .Cast <AutomationElement>().Where(elem => elem.Current.Name.Contains("List`")).ToList().ForEach(elem =>
                    {
                        if (stop)
                        {
                            return;
                        }
                        else
                        {
                            elem.SetFocus();
                            AutoIt.AutoItX.Sleep(1000);
                            if (libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation.SelectAutomationColrction(elem).Cast <AutomationElement>()
                                                                                                  .First(element => element.Current.Name.Contains("Шаблон"))) == nameAttributes)
                            {
                                rowNumber = index;
                                rowNumber++;
                                stop = true;
                            }
                            index++;
                        }
                    });
                }
            }

            AutomationElement automationElementRow;

            while ((automationElementRow = libraryAutomation.IsEnableElements(string.Format(ItElementName.ListRowRules, rowNumber), null, true, 5)) != null)
            {
                if (statusButton.Iswork)
                {
                    var infoRuleTemplate = new InfoUserTemlateAndRule()
                    {
                        Template = new Template[1]
                    };
                    automationElementRow.SetFocus();
                    AutoIt.AutoItX.Sleep(1000);
                    infoRuleTemplate.Template[0] = new Template()
                    {
                        NameTemplate = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Шаблон"))),
                        Info = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Описание"))),
                        Category = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                            libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>()
                            .First(elem => elem.Current.Name.Contains("Категории"))),
                    };

                    while (true)
                    {
                        libraryAutomation.ClickElement(libraryAutomation.SelectAutomationColrction(automationElementRow).Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Шаблон")), 180);
                        if (libraryAutomation.IsEnableElements(ItElementName.WinAll) != null)
                        {
                            break;
                        }
                    }
                    var winElement    = libraryAutomation.FindElement;
                    var sigmentNumber = 1;
                    List <AutomationElement> listSegment = libraryAutomation.SelectAutomationColrction(
                        libraryAutomation.IsEnableElements(ItElementName.WinSigment, null, true)).Cast <AutomationElement>()
                                                           .Where(elem => elem.Current.Name.Contains("List")).ToList();
                    infoRuleTemplate.Template[0].Sigment = new Sigment[listSegment.Count()];
                    foreach (AutomationElement automationElementTemplates in listSegment)
                    {
                        automationElementTemplates.SetFocus();
                        SendKeys.SendWait(ButtonConstant.Plus);
                        infoRuleTemplate.Template[0].Sigment[sigmentNumber - 1] = new Sigment()
                        {
                            Name = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                libraryAutomation.SelectAutomationColrction(automationElementTemplates)
                                .Cast <AutomationElement>()
                                .First(elem => elem.Current.Name.Contains("Сегмент")))
                        };
                        List <AutomationElement> listApp = libraryAutomation.SelectAutomationColrction(automationElementTemplates).Cast <AutomationElement>()
                                                           .Where(elem => elem.Current.Name.Contains("Apps row")).ToList();
                        infoRuleTemplate.Template[0].Sigment[sigmentNumber - 1].Applications = new Applications[listApp.Count()];

                        var rulesAppNumber = 1;
                        foreach (AutomationElement automationElementTemplatesRulesApp in listApp)
                        {
                            automationElementTemplatesRulesApp.SetFocus();
                            SendKeys.SendWait(ButtonConstant.Plus);
                            infoRuleTemplate.Template[0].Sigment[sigmentNumber - 1].Applications[rulesAppNumber - 1] = new Applications()
                            {
                                Name = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                    libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesApp)
                                    .Cast <AutomationElement>()
                                    .First(elem => elem.Current.Name.Contains("Приложение")))
                            };

                            List <AutomationElement> listRole = libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesApp).Cast <AutomationElement>()
                                                                .Where(elem => elem.Current.Name.Contains("RoleList row")).ToList();
                            infoRuleTemplate.Template[0].Sigment[sigmentNumber - 1].Applications[rulesAppNumber - 1].RuleTemplate = new RuleTemplate[listRole.Count()];

                            var rulesRulesAppRuleNumber = 1;
                            foreach (AutomationElement automationElementTemplatesRulesAppRule in listRole)
                            {
                                infoRuleTemplate.Template[0].Sigment[sigmentNumber - 1].Applications[rulesAppNumber - 1].RuleTemplate[rulesRulesAppRuleNumber - 1] = new RuleTemplate()
                                {
                                    NameRule = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                        libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesAppRule)
                                        .Cast <AutomationElement>()
                                        .First(elem => elem.Current.Name.Contains("Роль"))),

                                    Info = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                        libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesAppRule)
                                        .Cast <AutomationElement>()
                                        .First(elem => elem.Current.Name.Contains("Описание"))),

                                    Category = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(
                                        libraryAutomation.SelectAutomationColrction(automationElementTemplatesRulesAppRule)
                                        .Cast <AutomationElement>()
                                        .First(elem => elem.Current.Name.Contains("Категории"))),
                                };
                                rulesRulesAppRuleNumber++;
                            }
                            automationElementTemplatesRulesApp.SetFocus();
                            AutoIt.AutoItX.Sleep(500);
                            SendKeys.SendWait(ButtonConstant.Minus);
                            rulesAppNumber++;
                        }
                        automationElementTemplates.SetFocus();
                        AutoIt.AutoItX.Sleep(500);
                        SendKeys.SendWait(ButtonConstant.Minus);
                        sigmentNumber++;
                    }
                    libraryAutomation.CloseWindowPattern(winElement);
                    LibaryXMLAuto.ErrorJurnal.ReportMigration.CreateFileInfoUserRuleTemplate(pathJournalInfoUserTemplateRule, infoRuleTemplate);
                    rowNumber++;
                }
                else
                {
                    break;
                }
            }
        }