/// <summary> /// Получить данные из 1С и подготовить для вывода на форму асинхронно. /// </summary> /// <param name="service1C">Сервис 1С</param> /// <param name="account1CCode">Номер договора</param> /// <param name="secret1C">Данные для подключения</param> /// <param name="region">Регион</param> /// <param name="configuration">Настройки подключения</param> /// <returns>Модель данных для отображения</returns> public static async Task <IndexModel> GetDataFrom1CAsync(IService1СSoap service1C, string account1CCode, ISecret1C secret1C, string region, IConfiguration configuration) { IndexModel result = new IndexModel(); CreditDocumentNResult account = await service1C.GetCreditDocumentAsync( secret1C.Servers[region], secret1C.Login, secret1C.Password, account1CCode, CancellationToken.None); if (account.CreditDocument == default) { throw new Exception($"{Environment.NewLine}{account.Errors}"); } if (account.CreditDocument.Client == default) { throw new Exception($"{Environment.NewLine}Договор с номером \"{account1CCode}\" в базе 1С не найден"); } CreditDocument creditDocument = account.CreditDocument; result.ClientPersonalInfo.AddressReq = (AddressReq[])creditDocument.Client; result.ClientPersonalInfo.IdReq = (IdReq)creditDocument.Client; result.ClientPersonalInfo.PersonReq = (PersonReq)creditDocument.Client; result.InquiryReq = (InquiryReq)creditDocument; result.Client1CCode = creditDocument.Client.ID1C; result.Account1CCode = creditDocument.Code1C; result.Account1CDate = SOAPNBCH.StringToDateTime(creditDocument.DateOfCredit); return(result); }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1C">Сервис для работы с 1С</param> /// <param name="serviceServicePDN">Сервис для работы с данными НБКИ</param> /// <param name="secret1C">Настройки подключения к 1С</param> /// <param name="configuration">Настройки программы</param> public UpdateFromListController(IService1СSoap service1C, IServicePDN serviceServicePDN, ISecret1C secret1C, IConfiguration configuration) { _Service1C = service1C; _ServiceServicePDN = serviceServicePDN; _Secret1Cs = secret1C; _Configuration = configuration; }
/// <summary> /// Конструктор. /// </summary> /// <param name="serviceRegistrar">Сервис для работы с архивом</param> /// <param name="service1C">Сервис 1С</param> /// <param name="secret1C">Данные для подключения</param> /// <param name="logger">Логгер</param> public RegistrarDepartmentReportController(IServiceRegistrar serviceRegistrar, IService1СSoap service1C, ISecret1C secret1C, ILogger <RegistrarDepartmentReportController> logger) { _ServiceRegistrar = serviceRegistrar; _Service1C = service1C; _Secret1C = secret1C; _Logger = logger; }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1C">Сервис 1С</param> /// <param name="serviceRegistrar">Сервис по работе с документами</param> /// <param name="secret1Cs">Данные для подключения</param> /// <param name="logger">Логгер</param> public RegistrarDocumentsController(IService1СSoap service1C, IServiceRegistrar serviceRegistrar, ISecret1C secret1Cs, ILogger <RegistrarDocumentsController> logger) { _ServiceRegistrar = serviceRegistrar; _Service1C = service1C; _Secret1Cs = secret1Cs; _Logger = logger; }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1">Сервис 1С</param> /// <param name="secret1C">Данные для подключения к сервису 1С</param> /// <param name="logger">Сервис логирования</param> /// <param name="serviceInspecting">Сервис для логирования работы проверяющих сотрудников</param> public AccountsListApi(IService1СSoap service1, ISecret1C secret1C, ILogger <AccountsListApi> logger, IServiceInspecting serviceInspecting) { _Service1C = service1; _Secret1C = secret1C; _Logger = logger; _ServiceInspecting = serviceInspecting; }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1C">Сервис для работы с данными 1С</param> /// <param name="serviceNBCH">Сервис для работы с данными НБКИ</param> /// <param name="configuration">Конфигурация</param> /// <param name="secret1C">Данные для подключения</param> /// <param name="serviceNBCHsoap">Веб служба НБКИ</param> /// <param name="logger">Логгер</param> public NBCHRequestController(IService1СSoap service1C, IServiceNBCH serviceNBCH, IConfiguration configuration, ISecret1C secret1C, IServiceNBCHsoap serviceNBCHsoap, ILogger <NBCHRequestController> logger) { _Service1C = service1C; _Configuration = configuration; _Secret1Cs = secret1C; _ServiceNBCHsoap = serviceNBCHsoap; _Logger = logger; }
/// <summary> /// Получить список регионов из файла конфигурации. /// </summary> /// <param name="secret1C">Конфигурация для подключения к серверам 1С</param> /// <param name="selectedItem">Выбранный элемент</param> /// <returns>Список регионов</returns> public static SelectList GetRegions(ISecret1C secret1C, string selectedItem) { List <string> regions = new List <string>(); foreach (KeyValuePair <string, string[]> regionDescription in secret1C.Servers) { regions.Add(regionDescription.Key); } SelectList list = new SelectList(regions, selectedItem); return(list); }
/// <summary> /// Проверить входные параметры метода Get. /// </summary> /// <param name="func">Функция результат</param> /// <param name="accountStatus">Список статусов</param> /// <param name="region">Регион</param> /// <param name="secret1C">Настройки подключения к 1С</param> /// <returns>Результат проверки</returns> internal static ObjectResult GetCheckParams(Func <int, object, ObjectResult> func, int[] accountStatus, string region, ISecret1C secret1C) { if (accountStatus == default || accountStatus.Length == 0) { return(func(StatusCodes.Status400BadRequest, "Не заданы статусы договоров для отбора.")); } if (string.IsNullOrEmpty(region)) { return(func(StatusCodes.Status400BadRequest, "Не задан код региона.")); } if (!secret1C.Servers.Keys.Contains(region)) { return(func(StatusCodes.Status400BadRequest, "Неизвестный регион.")); } return(default);
/// <summary> /// Получить из 1С список клиентов по номеру договора асинхронно. /// </summary> /// <param name="service1C">Сервис 1С</param> /// <param name="secret1Cs">Данные для подключения к сервису 1С</param> /// <param name="region">Регион для определения приоритетного сервера</param> /// <param name="account1CCode">Номер договора 1С</param> /// <returns>Список клиентов</returns> public static async Task <(Client[] Clients, string[] Errors)> GetClientsFrom1CAccountAsync(IService1СSoap service1C, ISecret1C secret1Cs, string region, string account1CCode) { List <string> errors = new List <string>(); Client[] clients = new Client[0]; try { CreditDocumentNResult creditDocument = await service1C.GetCreditDocumentAsync( secret1Cs.Servers[region], secret1Cs.Login, secret1Cs.Password, account1CCode, CancellationToken.None); if (creditDocument.Errors.Length > 0) { errors.AddRange(creditDocument.Errors); } clients = (Client[])creditDocument.CreditDocument; } catch (EndpointNotFoundException) { errors.Add("Не удалось подключиться к службе 1C (запрос данных кредитного договора)"); } catch (Exception ex) { errors.Add(ex.Message); } return(clients, errors.ToArray()); }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1C">Сервис для работы с 1С</param> /// <param name="secret1C">Данные для подключения</param> /// <param name="logger">Сервис логирования</param> public ClientListApi(IService1СSoap service1C, ISecret1C secret1C, ILogger <ClientListApi> logger) { _Service1C = service1C; _Secret1C = secret1C; _Logger = logger; }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1C">Сервис 1С</param> /// <param name="secret1C">Данные для подключения к 1С</param> /// <param name="logger">Логгер</param> public AccountTableViewComponent(IService1СSoap service1C, ISecret1C secret1C, ILogger <AccountTableViewComponent> logger) { _Service1C = service1C; _Secret1C = secret1C; _Logger = logger; }
/// <summary> /// Конструктор. /// </summary> /// <param name="secret1C">Конфигурация для подключения к 1С со списком регионов</param> /// <param name="logger"></param> public RegionApi(ISecret1C secret1C, ILogger <RegionApi> logger) { _Logger = logger; _Secret1C = secret1C; }