/// <summary> /// Сохранение ФЛ в реестр /// </summary> /// <param name="fl">Физическое лицо</param> public void SaveFlFace(FlFaceMainRegistration fl) { if ((from flFaceMainRegistrations in Automation.FlFaceMainRegistrations where flFaceMainRegistrations.Inn == fl.Inn select new { FlFaceMainRegistrations = flFaceMainRegistrations }).Any()) { try { Automation.Entry(fl).State = EntityState.Modified; Automation.SaveChanges(); } catch (DbEntityValidationException ex) { foreach (DbEntityValidationResult validationError in ex.EntityValidationErrors) { Trace.WriteLine(validationError.Entry.Entity.ToString()); Trace.WriteLine(""); foreach (DbValidationError err in validationError.ValidationErrors) { Trace.WriteLine(err.ErrorMessage); } } } } }
/// <summary> /// Сохранение документа в БД /// </summary> /// <param name="fl">Физическое лицо</param> private void SaveDocument(FlFaceMainRegistration fl) { var dbAutomation = new AddObjectDb(); dbAutomation.SaveFlFace(fl); dbAutomation.Dispose(); }
/// <summary> /// Подстановка статуса принудительно обработан /// </summary> /// <param name="inn">ИНН</param> /// <param name="isExecute">Ун принудительного статуса</param> public void IsCheckErrorRegInn(string inn, bool isExecute) { var model = Automation.FlFaceMainRegistrations.FirstOrDefault(fl => fl.Inn == inn); if (model != null) { var modelEdit = new FlFaceMainRegistration() { IdFl = model.IdFl, IdNum = model.IdNum, Fid = model.Fid, Inn = model.Inn, F = model.F, I = model.I, O = model.O, DateOfBirth = model.DateOfBirth, PlaceBirth = model.PlaceBirth, CodeSd = model.CodeSd, Document = model.Document, SeriaDoc = model.SeriaDoc, NumberDoc = model.NumberDoc, DateCreateDoc = model.DateCreateDoc, WhoDoc = model.WhoDoc, CodePodr = model.CodePodr, Citizenship = model.Citizenship, Address = model.Address, IdStatus = isExecute ? model.IdStatus : 1, IdError = isExecute ? (int?)5 : null, DateCreate = model.DateCreate }; using (var context = new Base.Automation()) { context.Entry(modelEdit).State = EntityState.Modified; context.SaveChanges(); } } }
/// <summary> /// Ввод документа /// </summary> /// <param name="libraryAutomation">Библиотека автоматизации</param> /// <param name="flFaceModel">Модель в работе</param> /// <returns></returns> public void SendDocument(LibraryAutomations libraryAutomation, FlFaceMainRegistration flFaceModel) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.StartSend); var sexName = SelectName(flFaceModel.I); var isCloseForm = 1; if (sexName != null) { if (sexName.D1035) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, string.Format(SendDocuments.FloorSex, SendDocuments.SexM)); } else { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, string.Format(SendDocuments.FloorSex, SendDocuments.SexF)); } if (libraryAutomation.IsEnableElements(SendDocuments.PlaceBirth, null, true) != null) { libraryAutomation.SetValuePattern(flFaceModel.PlaceBirth.Replace(";", " ")); if (libraryAutomation.IsEnableElements(SendDocuments.Country, null, true) != null) { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, flFaceModel.Citizenship, 1); } } PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.Vk2); if (libraryAutomation.IsEnableElements(string.Format(SendDocuments.GroupModel, SendDocuments.Code), null, true) != null) { if (flFaceModel.CodeSd == "21") { libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.Code)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.CodeSd); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.SeriaDoc)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.SeriaDoc); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.NumberDoc)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.NumberDoc); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.DateDoc)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.DateCreateDoc?.ToString("dd.MM.yyyy")); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.CodePodr)); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.CodePodr); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.Organization)); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.WhoDoc); } if (flFaceModel.CodeSd == "03") { libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.Code)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.CodeSd); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.NumberDoc)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.NumberDoc); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.DateDoc)); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.DateCreateDoc?.ToString("dd.MM.yyyy")); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.CodePodr)); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.CodePodr); libraryAutomation.IsEnableElement(string.Format(SendDocuments.GroupModel, SendDocuments.Organization)); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.WhoDoc); } } PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.PlaceLife); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.Adress); if (libraryAutomation.IsEnableElements(SendDocuments.AdrMainWin, null, true) != null) { var arrayAdress = flFaceModel.Address.Split(','); if (!string.IsNullOrWhiteSpace(arrayAdress[0])) { libraryAutomation.IsEnableElement(SendDocuments.Index); libraryAutomation.SetLegacyIAccessibleValuePattern(arrayAdress[0].Trim()); } if (!string.IsNullOrWhiteSpace(arrayAdress[2])) { libraryAutomation.IsEnableElement(SendDocuments.Region); libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, arrayAdress[2].Trim(), 50); } if (!string.IsNullOrWhiteSpace(arrayAdress[3])) { libraryAutomation.IsEnableElement(SendDocuments.Raion); libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, arrayAdress[3].Trim(), 50); } if (!string.IsNullOrWhiteSpace(arrayAdress[4])) { libraryAutomation.IsEnableElement(SendDocuments.City); var elem = arrayAdress[4].Trim().Split(new[] { ' ' }, 2); if (elem[0].Length > 2) { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, arrayAdress[4].Trim(), 50); } else { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, string.Join(" ", elem[1], elem[0]), 50); } } if (!string.IsNullOrWhiteSpace(arrayAdress[5])) { libraryAutomation.IsEnableElement(SendDocuments.Village); var elem = arrayAdress[5].Trim().Split(new[] { ' ' }, 2); if (elem[0].Length > 4) { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, arrayAdress[5].Trim(), 50); } else { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, string.Join(" ", elem[1], elem[0]), 50); } } if (!string.IsNullOrWhiteSpace(arrayAdress[6])) { var array = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; libraryAutomation.IsEnableElement(SendDocuments.Street); var elem = arrayAdress[6].Trim().Split(new[] { ' ' }, 2); var strAdr = string.Join(" ", elem[1], elem[0]); if (elem[0].Length > 3 || elem[0].Contains("-")) { if (elem[0].Contains("пр")) { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, strAdr, 50); } else { foreach (var number in array) { if (elem[1].Contains(number.ToString())) { var moss = elem[1].Trim().Split(new[] { ' ' }, 2); if (moss[0].Contains(number.ToString())) { strAdr = string.Join(" ", moss[0], elem[0], moss[1]).Trim(); break; } else { strAdr = string.Join(" ", moss[1], elem[0], moss[0]).Trim(); break; } } strAdr = arrayAdress[6].Trim(); } libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, strAdr, 50); } } else { if (elem[1].Contains("ул")) { var mossStreet = elem[1].Trim().Split(new[] { ' ' }, 2); if (mossStreet.Count() == 2) { strAdr = string.Join(" ", mossStreet[1], elem[0], mossStreet[0]).Trim(); } } libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, strAdr, 50); } } if (!string.IsNullOrWhiteSpace(arrayAdress[7])) { libraryAutomation.IsEnableElement(SendDocuments.House); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(arrayAdress[7].Trim()); } if (!string.IsNullOrWhiteSpace(arrayAdress[8])) { libraryAutomation.IsEnableElement(SendDocuments.Building); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(arrayAdress[8].Trim()); } if (!string.IsNullOrWhiteSpace(arrayAdress[9])) { libraryAutomation.IsEnableElement(SendDocuments.Flat); libraryAutomation.FindElement = libraryAutomation.GetChildren(libraryAutomation.FindElement)[0]; libraryAutomation.SetLegacyIAccessibleValuePattern(arrayAdress[9].Trim()); } libraryAutomation.IsEnableElement(SendDocuments.CodeNo); libraryAutomation.SetLegacyIAccessibleValuePattern("7751"); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.ButtonCopy); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.Ok); libraryAutomation.IsEnableElement(SendDocuments.DateLife); libraryAutomation.FindElement.SetFocus(); libraryAutomation.SetLegacyIAccessibleValuePattern(flFaceModel.DateCreateDoc?.ToString("dd.MM.yy")); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.Save); if (libraryAutomation.IsEnableElements(SendDocuments.Warning, null, true, 5) != null) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.Warning); flFaceModel.IdError = 4; isCloseForm = 2; } PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.Yes); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, SendDocuments.OkWin); flFaceModel.IdStatus = 4; SaveDocument(flFaceModel); MouseCloseFormRsb(isCloseForm); } } //Если отсутствует пол что делать? }
/// <summary> /// Регистрация документа /// </summary> /// <param name="libraryAutomation">Библиотека автоматизации</param> /// <param name="dataArea">Описание ветки для автоматизации</param> /// <param name="flFaceModel">Модель в работе</param> public FlFaceMainRegistration RegistrationDocument(LibraryAutomations libraryAutomation, DataArea dataArea, FlFaceMainRegistration flFaceModel) { while (true) { if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.Forms, null, true) != null) { libraryAutomation.SetValuePattern("1185"); SendKeys.SendWait("{ENTER}"); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.Vk1); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.ButtonSelect); while (true) { if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.WinSelect, null, true) != null) { SelectTreeParameterUpdate(libraryAutomation, dataArea, flFaceModel.Inn); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, dataArea.Riborn); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.Vk2); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.ButtonCopy); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.Vk3); if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.SelectForm, null, true) != null) { libraryAutomation.SelectItemCombobox(libraryAutomation.FindElement, "05 - Другое", 500); if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.Number, null, true) != null) { libraryAutomation.SetValuePattern("1"); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.Send); while (true) { if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.WinPrint, null, true) != null) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.WinClosed); break; } } PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.Registration); while (true) { if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.WinError, null, true, 5) != null) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.RegistrationStart); } if (libraryAutomation.IsEnableElements(AcceptanceDocumentsElementName.WinKor, null, true, 5) != null) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.Kor); break; } } MouseCloseFormRsb(1); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, AcceptanceDocumentsElementName.ClosedForm); flFaceModel.IdStatus = 3; SaveDocument(flFaceModel); } } break; } } break; } } return(flFaceModel); }
/// <summary> /// Собираем ФЛ для сбора и анализа данных /// </summary> /// <param name="libraryAutomation">Библиотека автоматизации</param> /// <param name="dataArea">Автоматизация</param> /// <param name="flFaceModel">Документ на обработке</param> private FlFaceMainRegistration FlParseSave(LibraryAutomations libraryAutomation, DataArea dataArea, FlFaceMainRegistration flFaceModel) { PublicGlobalFunction.PublicGlobalFunction.GridNotDataIsWaitUpdate(libraryAutomation, dataArea.FullPathGrid); AutomationElement automationElement; while ((automationElement = libraryAutomation.IsEnableElements( string.Concat(dataArea.FullPathGrid, dataArea.ListRowDataGrid, 1), null, true, 30)) != null) { flFaceModel.IdNum = Convert.ToInt64(Regex.Replace(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("УН ФЛ в ЕГРН"))), @"\s+", "")); flFaceModel.F = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Фамилия"))); flFaceModel.I = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Имя"))); flFaceModel.O = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Отчество"))); flFaceModel.DateOfBirth = Convert.ToDateTime(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата рождения")))); flFaceModel.PlaceBirth = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Место рождения"))); flFaceModel.CodeSd = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Код СПДУЛ"))); flFaceModel.Document = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Документ, удостоверяющий личность"))); flFaceModel.SeriaDoc = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Серия документа"))); flFaceModel.NumberDoc = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Номер документа"))); flFaceModel.DateCreateDoc = Convert.ToDateTime(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата выдачи документа")))); flFaceModel.WhoDoc = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Кем выдан документ"))); flFaceModel.CodePodr = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Код подразделения"))); flFaceModel.Citizenship = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Гражданство"))); flFaceModel.Address = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Адрес места жительства"))); flFaceModel.Fid = Convert.ToInt64(Regex.Replace(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation .SelectAutomationColrction(automationElement) .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("ФИД лица"))), @"\s+", "")); if (flFaceModel.CodeSd == "01") { flFaceModel.IdError = 1; } if (flFaceModel.CodeSd == "91") { flFaceModel.IdError = 1; } if (string.IsNullOrWhiteSpace(flFaceModel.Address)) { flFaceModel.IdError = 2; } else { var arrayAddress = flFaceModel.Address.Split(','); if (arrayAddress.Count() < 8) { flFaceModel.IdError = 3; } } flFaceModel.IdStatus = 2; break; } MouseCloseFormRsb(1); SaveDocument(flFaceModel); return(flFaceModel); }