Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 /// <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;
 }
Exemplo n.º 3
0
 /// <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;
 }
Exemplo n.º 4
0
 /// <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;
 }
Exemplo n.º 5
0
 /// <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;
 }
Exemplo n.º 6
0
 /// <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;
 }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        /// <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);
Exemplo n.º 9
0
        /// <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());
        }
Exemplo n.º 10
0
 /// <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;
 }
Exemplo n.º 11
0
 /// <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;
 }
Exemplo n.º 12
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="secret1C">Конфигурация для подключения к 1С со списком регионов</param>
 /// <param name="logger"></param>
 public RegionApi(ISecret1C secret1C, ILogger <RegionApi> logger)
 {
     _Logger   = logger;
     _Secret1C = secret1C;
 }