public void Process() { try { Logs.Add($"Inicio Teste - [Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}]"); SEGURADORAICSCONFIG seguradoraIcs = _icsIsurerConfig.GetConfiguration(EnumIntegrationConfigLiberty.EmissaoApolice); if (seguradoraIcs == null) { Logs.Add($"Configuração nula", EnumLog.Error); return; } ServiceConfigurationIcs serviceConfigurationIcs = new ServiceConfigurationIcs(); serviceConfigurationIcs = JsonConvert.DeserializeObject <ServiceConfigurationIcs>(seguradoraIcs.JS_REGRAS); serviceConfigurationIcs.Config = JsonConvert.DeserializeObject <ServiceConfigurationIcs>(seguradoraIcs.JS_CONFIG).Config; if (ExecutaServico(serviceConfigurationIcs)) { EmissaoApolice(seguradoraIcs, serviceConfigurationIcs); } } catch (Exception ex) { Logs.Add($"Inicio - [Servico de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()} - Erro: { ex.InnerException.Message} - { ex.StackTrace}", EnumLog.Error); } finally { Logs.Add($"Fim - [Serviço de Emissão {EnumInsurer.Liberty.GetDescriptionEnum()}]"); Logs.Save(EnumInsurer.Liberty); } }
public void UpdateIcsIsurerConfig(SEGURADORAICSCONFIG seguradoraIcs, ServiceConfigurationIcs serviceConfigurationIcs) { seguradoraIcs.JS_REGRAS = JsonConvert.SerializeObject(new { serviceConfigurationIcs.CD_PESSOA_SEGURADORA, serviceConfigurationIcs.NR_INTEGRACAO, serviceConfigurationIcs.VALOR_MAXIMO, serviceConfigurationIcs.PAGINA, serviceConfigurationIcs.DT_ULTIMA_EXEC_SUCESSO }); seguradoraIcs.JS_CONFIG = JsonConvert.SerializeObject(new { Config = new { serviceConfigurationIcs.Config.NR_INTERVALO, serviceConfigurationIcs.Config.QTD_DADOS, serviceConfigurationIcs.Config.NR_THREADS, serviceConfigurationIcs.Config.STATUS, serviceConfigurationIcs.Config.EXECUTA_PERIODO, serviceConfigurationIcs.Config.DT_PROXIMA_RODADA } }); Context.IcsIsurerConfig.Update(seguradoraIcs); Context.SaveChanges(); }
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}"); } }