Beispiel #1
0
        public void SetPolicyPendingCancelation(int policyIdentifier)
        {
            var apiConfiguration = _icsConfiguration.Apis["UpdatePolicyPendingCancelation"];
            var restfulClient    = new CommonBusiness.Integrations.RestfulClient <dynamic>(_icsConfiguration.BaseUrl, apiConfiguration.Suffix, timeOut: apiConfiguration.Timeout);
            var result           = restfulClient.Save(new
            {
                CD_APOLICE           = policyIdentifier,
                MOTIVO               = $"Apolice enviada para cancelamento, aguardando retorno seguradora.",
                NM_SISTEMA_ALTERACAO = $"ICS_PROCESS_SVC",
                NM_USUARIO_ALTERACAO = $"INTEGRACAO",
                validarRegras        = false,
                NRSTATUS             = 8
            });
            var retorno = JsonConvert.DeserializeObject <dynamic>(result.ToString());

            if (retorno.ReturnCode == 0)
            {
                Logs.Add($"Ocorreu um erro ao alterar a apólice: {policyIdentifier}. O Modulo_ICS a mensagem : {retorno.Message} ");
            }
        }
        private void EmissaoApolice(SEGURADORAICSCONFIG seguradoraIcs, ServiceConfigurationIcs serviceConfigurationIcs)
        {
            try
            {
                DateTime currentDateToRun = Convert.ToDateTime(serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO).AddDays(1);

                if (currentDateToRun.Date == DateTime.Today)
                {
                    Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. EmissaoApolice - Fim do fluxo de Consulta de Emissões.");
                    return;
                }

                //         var apiConfigurationTeste = _icsConfiguration.Apis["UpdatePolicyPendingCancelation"];
                //         var restfulClientTeste = new RestfulClient<dynamic>(_icsConfiguration.BaseUrl, apiConfigurationTeste.Suffix, timeOut: apiConfigurationTeste.Timeout);
                //         var resultTeste = restfulClientTeste.Save(new
                //         {
                //             CD_APOLICE = 123456,
                //             MOTIVO = $"Apolice enviada para cancelamento, aguardando retorno seguradora.",
                //             NM_SISTEMA_ALTERACAO = $"ICS_PROCESS_SVC",
                //             NM_USUARIO_ALTERACAO = $"INTEGRACAO",
                //             validarRegras = false,
                //             NRSTATUS = 8
                //         });
                //         var retornoTeste = JsonConvert.DeserializeObject<dynamic>(resultTeste.ToString());


                //var apiConfigurationTeste2 = _icsConfiguration.Apis["UpdatePolicyPendingCancelation"];
                //var restfulClientTeste2 = new Dominio.Modulo.Insurance.Liberty.HttpClient.RestfulClient<dynamic>("http://api1.ituran.sp/insurance", $"Apolice/Renovacao/{123456}", timeOut: apiConfigurationTeste2.Timeout);
                //var resultTeste2 = restfulClientTeste2.Get();
                //var retornoTeste2 = JsonConvert.DeserializeObject<dynamic>(resultTeste.ToString());


                var apiConfiguration = _icsConfiguration.Apis["ConsultarEmissaoLiberty"];

                Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Inicio da requisição para API: {_icsConfiguration.BaseUrl}/{apiConfiguration.Suffix}{(int)EnumInsurer.Liberty},{currentDateToRun:yyyy-MM-dd}/{serviceConfigurationIcs.PAGINA}");

                var restfulClient = new CommonBusiness.Integrations.RestfulClient <JsonDataResponse>(_icsConfiguration.BaseUrl, apiConfiguration.Suffix, timeOut: apiConfiguration.Timeout);

                var result = restfulClient.Save(new
                {
                    CD_PESSOA_SEGURADORA = (int)EnumInsurer.Liberty,
                    DT_FILTRO            = currentDateToRun.ToDateTimeString("yyyy-MM-dd'T'HH:mm:ss"),
                    //DT_FILTRO = currentDateToRun,
                    serviceConfigurationIcs.PAGINA
                });

                Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Retorno da Consulta de Emissões. ");

                if (result?.Data == null || string.IsNullOrWhiteSpace(result.Data.ToString()))
                {
                    Logs.Add($"[Serviço de Emissão { EnumInsurer.Liberty.GetDescriptionEnum() }. Data Filtro: {serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO} - Erro: Retorno Modulo ICS Inválido ");
                }

                else
                {
                    ResponseData retorno = JsonConvert.DeserializeObject <ResponseData>(result.Data.ToString());

                    if (retorno.Success)
                    {
                        serviceConfigurationIcs.Config.DT_PROXIMA_RODADA = Convert.ToDateTime($"{DateTime.Now.AddDays(1):yyyy-MM-dd} 10:00").ToString();
                        serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO   = $"{currentDateToRun.ToShortDateString()} {DateTime.Now.ToShortTimeString()}";

                        _icsIsurerConfig.UpdateIcsIsurerConfig(seguradoraIcs, serviceConfigurationIcs);

                        Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Data Filtro: {serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO} - Data Execução: {DateTime.Now} - Finalizado com Sucesso.");

                        if (currentDateToRun < DateTime.Now.Date && serviceConfigurationIcs.Config.EXECUTA_PERIODO)
                        {
                            Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Retorna ao inicio do fluxo, para consultar o próximo dia.");
                            EmissaoApolice(seguradoraIcs, serviceConfigurationIcs);
                            _icsIsurerConfig.UpdateIcsIsurerConfig(seguradoraIcs, serviceConfigurationIcs);
                        }
                    }

                    else if (retorno.Success == false)
                    {
                        if (retorno.Page == 0)
                        {
                            serviceConfigurationIcs.Config.DT_PROXIMA_RODADA = Convert
                                                                               .ToDateTime(serviceConfigurationIcs.Config.DT_PROXIMA_RODADA)
                                                                               .GetNextDateFromInterval(serviceConfigurationIcs.Config.NR_INTERVALO).ToString("dd/MM/yyyy HH:mm");
                            Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Data Filtro: {serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO} - Data Execução: {DateTime.Now} - Erro - {retorno.Error}");
                        }
                        else
                        {
                            serviceConfigurationIcs.Config.DT_PROXIMA_RODADA = Convert.ToDateTime(serviceConfigurationIcs.Config.DT_PROXIMA_RODADA).GetNextDateFromInterval(serviceConfigurationIcs.Config.NR_INTERVALO).ToString("dd/MM/yyyy HH:mm");
                            serviceConfigurationIcs.PAGINA = retorno.Page;
                            _icsIsurerConfig.UpdateIcsIsurerConfig(seguradoraIcs, serviceConfigurationIcs);

                            Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Data Filtro: {serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO} - Data Execução: {DateTime.Now} - Erro - Falha ao tentar consultar a página {retorno.Page} da API. - {retorno.Error}");
                        }

                        if (currentDateToRun < DateTime.Now)
                        {
                            serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO =
                                Convert.ToDateTime($"{currentDateToRun:yyyy-MM-dd} 10:00").ToString();
                            _icsIsurerConfig.UpdateIcsIsurerConfig(seguradoraIcs, serviceConfigurationIcs);
                            EmissaoApolice(seguradoraIcs, serviceConfigurationIcs);
                        }
                        _icsIsurerConfig.UpdateIcsIsurerConfig(seguradoraIcs, serviceConfigurationIcs);
                    }
                }
            }
            catch (Exception ex)
            {
                Logs.Add($"[Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}. Data Filtro: {serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO} - Data Execução: {DateTime.Now} - Erro: {ex.Message} / {ex.InnerException}");
            }
        }