/// <summary> /// Salva as passagens reprovadas nas tabelas de Staging do ConectSys. /// </summary> /// <param name="passagensReprovadas">PassagemReprovadaArtespDto</param> /// <param name="response">PassagensReprovadasArtespResponse</param> /// <param name="execucaoId">Sessão de execução.</param> private void SalvarReprovadasStagingConectSys(List <PassagemReprovadaArtespDto> passagensReprovadas, PassagensReprovadasArtespResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((reprovadas) => { Log.Debug($"ID: {execucaoId} - Início - Staging Passagens Reprovadas Artesp - ConectSys."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { var veiculos = passagensReprovadas.Any(c => c.Veiculo != null) ? passagensReprovadas.Select(c => c.Veiculo) : null; var veiculosLoteStaging = Mapper.Map <List <VeiculoLoteStaging> >((veiculos ?? new List <VeiculoDto>())); veiculosLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(veiculosLoteStaging, "VeiculoLoteStaging"); var passagens = passagensReprovadas.Any(c => c.Passagem != null) ? passagensReprovadas.Select(c => c.Passagem) : null; var passagensLoteStaging = Mapper.Map <List <PassagemLoteStaging> >((passagens ?? new List <PassagemDto>())); passagensLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(passagensLoteStaging, "PassagemLoteStaging"); var transacoesRecusadas = passagensReprovadas.Any(c => c.TransacaoRecusada != null) ? passagensReprovadas.Select(c => c.TransacaoRecusada) : null; var transacoesRecusadasLoteStaging = Mapper.Map <List <TransacaoRecusadaLoteStaging> >((transacoesRecusadas ?? new List <TransacaoRecusadaDto>())); transacoesRecusadasLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(transacoesRecusadasLoteStaging, "TransacaoRecusadaLoteStaging"); var transacoesRecusadasParceiro = passagensReprovadas.Any(c => c.TransacaoRecusadaParceiro != null) ? passagensReprovadas.Select(c => c.TransacaoRecusadaParceiro) : null; var transacoesRecusadasParceiroLoteStaging = Mapper.Map <List <TransacaoRecusadaParceiroLoteStaging> >((transacoesRecusadasParceiro ?? new List <TransacaoRecusadaParceiroDto>())); transacoesRecusadasParceiroLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(transacoesRecusadasParceiroLoteStaging, "TransacaoRecusadaParceiroLoteStaging"); response.QtdVeiculosStaging = veiculosLoteStaging.Count; response.QtdPassagensStaging = passagensLoteStaging.Count; response.QtdTransacoesRecusadasParceiroStaging = transacoesRecusadasParceiroLoteStaging.Count; response.QtdTransacoesRecusadasStaging = transacoesRecusadasLoteStaging.Count; response.SucessoStagingConectSys = true; } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Staging Passagens Reprovadas Artesp - ConectSys.", ex); response.SucessoStagingConectSys = false; } } Log.Debug($"ID: {execucaoId} - Fim - Staging Passagens Reprovadas Artesp - ConectSys."); }, passagensReprovadas); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoStagingConectSys = sw.Elapsed; }
private void SalvarReprovadasStagingConectSys(List <PassagemReprovadaEstacionamentoDto> passagensReprovadas, PassagensReprovadasParkResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); var transacoesRecusadas = passagensReprovadas?.Select(c => c.TransacaoEstacionamentoRecusada).ToList(); var transacoesEstacionamentoRecusadasLoteStaging = Mapper.Map <List <TransacaoEstacionamentoRecusadaLoteStaging> >(transacoesRecusadas); var idsTransacoes = transacoesRecusadas.Select(x => x.RegistroTransacaoId).ToList(); var detalhePassagens = passagensReprovadas?.SelectMany(c => c.TransacaoEstacionamentoRecusada.Detalhes).ToList(); var detalhePassagemEstacionamentoRecusadasStaging = new List <DetalheTransacaoEstacionamentoRecusadaLoteStaging>(); detalhePassagens.ForEach(x => detalhePassagemEstacionamentoRecusadasStaging.Add(Mapper.Map <DetalheTransacaoEstacionamentoRecusadaLoteStaging>(x))); try { TransactionContextHelper.ExecuteTransaction((reprovadas) => { Log.Debug($"ID: {execucaoId} - Início - Staging Passagens Reprovadas Park - ConectSys."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { datasourceConectSys.Connection.BulkInsertTransacoes(transacoesEstacionamentoRecusadasLoteStaging, "TransacaoEstacionamentoRecusadaLoteStaging"); datasourceConectSys.Connection.BulkInsertTransacoes(detalhePassagemEstacionamentoRecusadasStaging, "DetalhePassagemEstacionamentoRecusadaLoteStaging"); response.QtdTransacaoEstacionamentoRecusadaStaging = transacoesEstacionamentoRecusadasLoteStaging.Count; response.QtdDetalhePassagemEstacionamentoRecusadaStaging = detalhePassagemEstacionamentoRecusadasStaging.Count; } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Staging Passagens Reprovadas Park - ConectSys.", ex); response.SucessoStagingConectSys = false; } } Log.Debug($"ID: {execucaoId} - Fim - Staging Passagens Reprovadas Park - ConectSys."); }, passagensReprovadas); TransactionContextHelper.ExecuteTransaction((reprovadas) => { using (var dataSourceConectPark = new DbConnectionDataSource("ConectParkConnStr")) { var command = new AtualizarRegistroTransacaoProcessadoCommand(dataSourceConectPark); command.Execute(new AtualizarRegistroTransacaoProcessadoArgs { RegistroTransacaoIds = idsTransacoes }); } }, transacoesRecusadas); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoStagingConectSys = sw.Elapsed; }
/// <summary> /// Executa a procedure "SP_SalvarPassagensProcessadas" na base do Mensageria. /// </summary> /// <param name="passagensReprovadas">PassagemReprovadaArtespDto[]</param> /// <param name="response">PassagensReprovadasArtespResponse</param> /// <param name="execucaoId">Sessão de execução.</param> private void SalvarProcessadasReprovadasMensageria(List <PassagemReprovadaArtespDto> passagensReprovadas, PassagensReprovadasArtespResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((qtdRegistros) => { Log.Debug($"ID: {execucaoId} - Início - Execução procedure SP_SalvarPassagensProcessadas - Mensageria."); using (var datasourceMensageria = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.Mensageria)) { try { var command = new SalvarPassagensProcessadasCommand(datasourceMensageria); var passagensProcessadas = passagensReprovadas.Any(c => c.PassagemProcessada != null) ? passagensReprovadas.Select(c => c.PassagemProcessada).ToList() : null; var filter = new PassagemProcessadaFilter { ExecucaoId = execucaoId, PassagensProcessadas = passagensProcessadas }; var dto = command.Execute(filter); if (dto.Status) { response.SucessoMensageria = true; response.ErroMensageria = String.Empty; } else { Log.Error($"ID: {execucaoId} - Erro - Execução procedure SP_SalvarPassagensProcessadas - Mensageria. Retorno: {dto}."); response.SucessoMensageria = false; response.ErroMensageria = dto.ToString(); AtualizarFalhaPassagensProcessadas(datasourceMensageria, execucaoId, dto.ToString()); } } catch (Exception ex) { Log.Error($"ID: {execucaoId} - Erro Fatal - Execução procedure SP_SalvarPassagensProcessadas - Mensageria.", ex); response.SucessoMensageria = false; AtualizarFalhaPassagensProcessadas(datasourceMensageria, execucaoId, ex.Message); } } Log.Debug($"ID: {execucaoId} - Fim - Execução procedure SP_SalvarPassagensProcessadas - Mensageria."); }, 0); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoMensageria = sw.Elapsed; }
/// <summary> /// Atualiza o TTL das passagens pendentes. /// </summary> /// <param name="passagensPendentes">Passagens pendentes de processamento.</param> /// <param name="codigoProtocoloArtesp">Código da concessionária.</param> /// <param name="tempoMaximoTtlEmMinutos">Tempo máximo em TTL para próxima verificação.</param> /// <returns>True caso atualizações de TTL tenham sido realizadas.</returns> private bool AtualizarTtlPassagensPendentes(IEnumerable<PassagemPendenteMessage> passagensPendentes, int tempoMaximoTtlEmMinutos) { var mensagemItemIdMin = passagensPendentes.Min(x => x.MensagemItemId); var mensagemItemIdMax = passagensPendentes.Max(x => x.MensagemItemId); var args = new AlterarPassagemPendenteCommandArg { DataTtl = DateTime.Now.AddMinutes(tempoMaximoTtlEmMinutos), MensagemItemIdMax = mensagemItemIdMax, MensagemItemIdMin = mensagemItemIdMin }; var alterarPassagemPendenteCommand = new AlterarPassagemPendenteCommand(_dataSourceMensageria); return TransactionContextHelper.ExecuteTransaction(alterarPassagemPendenteCommand.Execute, args); }
private bool AtualizarTtlDetalhesPassagemPendenteEstacionamento(IEnumerable <PassagemPendenteParkMessage> detalhesPassagemPark, int tempoMaximoTtlEmMinutos) { var registroTransacaoIdMin = detalhesPassagemPark.Min(x => x.RegistroTransacaoId); var registroTransacaoIdMax = detalhesPassagemPark.Max(x => x.RegistroTransacaoId); var args = new AlterarDetalheParkCommandArgs { DataTtl = DateTime.Now.AddMinutes(tempoMaximoTtlEmMinutos), RegistroTransacaoIdMax = registroTransacaoIdMax ?? 0, RegistroTransacaoIdMin = registroTransacaoIdMin ?? 0 }; var alterarDetalheParkCommand = new AlterarDetalheParkCommand(_dataSourcePark); return(TransactionContextHelper.ExecuteTransaction(alterarDetalheParkCommand.Execute, args)); }
private bool AtualizarTtlDetalhesTrn(List <PassagemPendenteEDIMessage> detalhesTrn, int tempoMaximoTtlEmMinutos) { var detalheTrnIdMin = detalhesTrn.Min(x => x.DetalheTrnId); var detalheTrnIdMax = detalhesTrn.Max(x => x.DetalheTrnId); var args = new AlterarDetalheTrnCommandArgs { DataTtl = DateTime.Now.AddMinutes(tempoMaximoTtlEmMinutos), DetalheTrnIdMax = detalheTrnIdMax, DetalheTrnIdMin = detalheTrnIdMin }; var alterarDetalheTrnCommand = new AlterarDetalheTrnCommand(_dataSource); return(TransactionContextHelper.ExecuteTransaction(alterarDetalheTrnCommand.Execute, args)); }
/// <summary> /// Salva as passagens processadas que foram reprovadas nas tabelas de Staging do Mensageria. /// </summary> /// <param name="passagensReprovadas">PassagemReprovadaArtespDto[]</param> /// <param name="response">PassagensReprovadasArtespResponse</param> /// <param name="execucaoId">Sessão de execução.</param> private void SalvarProcessadasReprovadasStagingMensageria(List <PassagemReprovadaArtespDto> passagensReprovadas, PassagensReprovadasArtespResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((reprovadas) => { Log.Debug($"ID: {execucaoId} - Início - Staging Passagens Processadas - Mensageria."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.Mensageria)) { try { var passagensProcessadas = passagensReprovadas.Any(c => c.PassagemProcessada != null) ? passagensReprovadas.Select(c => c.PassagemProcessada) : null; var passagensProcessadasLoteStaging = Mapper.Map <List <PassagemProcessadaLoteStaging> >((passagensProcessadas ?? new List <PassagemProcessadaArtespDto>())); passagensProcessadasLoteStaging.ForEach(x => { x.ExecucaoId = execucaoId; x.Aprovada = false; }); datasourceConectSys.Connection.BulkInsertTransacoes(passagensProcessadasLoteStaging, "PassagemProcessadaLoteStaging"); response.QtdPassagensProcessadasStaging = passagensProcessadasLoteStaging.Count; response.SucessoStagingMensageria = true; } catch (Exception ex) { Log.Error($"ID: {execucaoId} - Erro Fatal - Staging Passagens Processadas - Mensageria.", ex); response.SucessoStagingMensageria = false; } } Log.Debug($"ID: {execucaoId} - Fim - Staging Passagens Processadas - Mensageria."); }, passagensReprovadas); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoStagingMensageria = sw.Elapsed; }
private void SalvarAprovadasStagingConectSys(List <PassagemAprovadaEstacionamentoDto> passagensAprovadas, PassagensAprovadasParkResponse response, Guid execucaoId) { try { var transacoes = passagensAprovadas?.Select(c => c.TransacaoEstacionamento).ToList(); var transacaoStaging = Mapper.Map <List <TransacaoPassagemEstacionamentoLoteStaging> >(transacoes); var idsTransacoes = transacoes.Select(x => x.RegistroTransacaoId).ToList(); var extratos = passagensAprovadas?.Select(c => c.Extrato).ToList(); var extratosStaging = Mapper.Map <List <ExtratoLoteStaging> >(extratos); var conveniadoInformacoes = passagensAprovadas?.Select(c => c.ConveniadoInformacoesRPS).ToList(); var conveniadoInformacoesStaging = Mapper.Map <List <ConveniadoInformacoesRpsLoteStaging> >(conveniadoInformacoes); var detalhePassagens = passagensAprovadas?.SelectMany(c => c.TransacaoEstacionamento.Detalhes).ToList(); var detalhePassagemStaging = new List <DetalhePassagemEstacionamentoLoteStaging>(); detalhePassagens.ForEach(x => detalhePassagemStaging.Add(Mapper.Map <DetalhePassagemEstacionamentoLoteStaging>(x))); var pistaInformacoes = passagensAprovadas?.Select(c => c.PistaInformacoesRPS).ToList(); var pistaInformacoesRpsStaging = Mapper.Map <List <PistaInformacoesRPSLoteStaging> >(pistaInformacoes); TransactionContextHelper.ExecuteTransaction((aprovadas) => { Log.Debug($"ID: {execucaoId} - Início - Staging Passagens Aprovadas Park - ConectSys."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { datasourceConectSys.Connection.BulkInsert(transacaoStaging, "TransacaoPassagemEstacionamentoStaging"); datasourceConectSys.Connection.BulkInsert(extratosStaging, "ExtratoLoteStaging"); datasourceConectSys.Connection.BulkInsert(detalhePassagemStaging, "DetalhePassagemEstacionamentoStaging"); datasourceConectSys.Connection.BulkInsert(conveniadoInformacoesStaging, "ConveniadoInformacoesRPSStaging"); datasourceConectSys.Connection.BulkInsert(pistaInformacoesRpsStaging, "PistaInformacoesRpsStaging"); response.QtdConveniadoInformacoesRPSStaging = conveniadoInformacoesStaging.Count; response.QtdDetalhePassagemEstacionamentoStaging = detalhePassagemStaging.Count; response.QtdPistaInformacoesRPSStaging = pistaInformacoesRpsStaging.Count; response.QtdTransacaoPassagemEstacionamentoStaging = transacaoStaging.Count; } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Staging Passagem Aprovadas Park - ConectSys", ex); response.SucessoStagingConectSys = false; } } Log.Debug($"ID: {execucaoId} - Fim - Staging Passagens Aprovadas Park - ConectSys"); }, passagensAprovadas); TransactionContextHelper.ExecuteTransaction((aprovadas) => { using (var dataSourceConectPark = new DbConnectionDataSource("ConectParkConnStr")) { var command = new AtualizarRegistroTransacaoProcessadoCommand(dataSourceConectPark); command.Execute(new AtualizarRegistroTransacaoProcessadoArgs { RegistroTransacaoIds = idsTransacoes }); } }, passagensAprovadas); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } }
/// <summary> /// Salva as passagens aprovadas nas tabelas de Staging do ConectSys. /// </summary> /// <param name="passagensAprovadas">PassagemAprovadaArtespDto</param> /// <param name="response">PassagensAprovadasArtespResponse</param> /// <param name="execucaoId">Sessão de execução.</param> private void SalvarAprovadasStagingConectSys(List <PassagemAprovadaArtespDto> passagensAprovadas, PassagensAprovadasArtespResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((aprovadas) => { Log.Debug($"ID: {execucaoId} - Início - Staging Passagens Aprovadas Artesp - ConectSys."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { var aceites = passagensAprovadas.Any(c => c.AceiteManualReenvioPassagem != null) ? passagensAprovadas.Select(c => c.AceiteManualReenvioPassagem) : null; var aceiteManualReenvioPassagemLoteStaging = Mapper.Map <List <AceiteManualReenvioPassagemLoteStaging> >((aceites ?? new List <AceiteManualReenvioPassagemDto>())); aceiteManualReenvioPassagemLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(aceiteManualReenvioPassagemLoteStaging, "AceiteManualReenvioPassagemLoteStaging"); var configuracoesAdesao = passagensAprovadas.Any(c => c.ConfiguracaoAdesao != null) ? passagensAprovadas.Select(c => c.ConfiguracaoAdesao) : null; var configuracaoAdesaoLoteStaging = Mapper.Map <List <ConfiguracaoAdesaoLoteStaging> >((configuracoesAdesao ?? new List <ConfiguracaoAdesaoDto>())); configuracaoAdesaoLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(configuracaoAdesaoLoteStaging, "ConfiguracaoAdesaoLoteStaging"); var viagens = passagensAprovadas.Any(c => c.Viagens != null) ? passagensAprovadas.SelectMany(c => c.Viagens) : null; var detalheViagemLoteStaging = Mapper.Map <List <DetalheViagemLoteStaging> >((viagens ?? new List <DetalheViagemDto>())); detalheViagemLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(detalheViagemLoteStaging, "DetalheViagemLoteStaging"); var divergencias = passagensAprovadas.Any(c => c.DivergenciaCategoriaConfirmada != null) ? passagensAprovadas.Select(c => c.DivergenciaCategoriaConfirmada) : null; var divergenciaCategoriaConfirmadaLoteStaging = Mapper.Map <List <DivergenciaCategoriaConfirmadaLoteStaging> >((divergencias ?? new List <DivergenciaCategoriaConfirmadaDto>())); divergenciaCategoriaConfirmadaLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(divergenciaCategoriaConfirmadaLoteStaging, "DivergenciaCategoriaConfirmadaLoteStaging"); var estornos = passagensAprovadas.Any(c => c.EstornoPassagem != null) ? passagensAprovadas.Select(c => c.EstornoPassagem) : null; var estornoPassagemLoteStaging = Mapper.Map <List <EstornoPassagemLoteStaging> >((estornos ?? new List <EstornoPassagemDto>())); estornoPassagemLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(estornoPassagemLoteStaging, "EstornoPassagemLoteStaging"); var eventos = passagensAprovadas.Any(c => c.EventoPrimeiraPassagemManual != null) ? passagensAprovadas.Select(c => c.EventoPrimeiraPassagemManual) : null; var eventoLoteStaging = Mapper.Map <List <EventoLoteStaging> >((eventos ?? new List <EventoDto>())); eventoLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(eventoLoteStaging, "EventoLoteStaging"); var extratos = passagensAprovadas.Any(c => c.Extrato != null) ? passagensAprovadas.Select(c => c.Extrato) : null; var extratoLoteStaging = Mapper.Map <List <ExtratoLoteStaging> >((extratos ?? new List <ExtratoDto>())); extratoLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(extratoLoteStaging, "ExtratoLoteStaging"); var extratosEstorno = passagensAprovadas.Any(c => c.ExtratoEstorno != null) ? passagensAprovadas.Select(c => c.ExtratoEstorno) : null; var extratoEstornoLoteStaging = Mapper.Map <List <ExtratoLoteStaging> >((extratosEstorno ?? new List <ExtratoDto>())); extratoEstornoLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(extratoEstornoLoteStaging, "ExtratoLoteStaging"); var solicitacoes = passagensAprovadas.Any(c => c.SolicitacaoImagem != null) ? passagensAprovadas.Select(c => c.SolicitacaoImagem) : null; var solicitacaoImagemLoteStaging = Mapper.Map <List <SolicitacaoImagemLoteStaging> >((solicitacoes ?? new List <SolicitacaoImagemDto>())); solicitacaoImagemLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(solicitacaoImagemLoteStaging, "SolicitacaoImagemLoteStaging"); var transacoes = passagensAprovadas.Any(c => c.TransacaoPassagemArtesp != null) ? passagensAprovadas.Select(c => c.TransacaoPassagemArtesp) : null; var transacaoPassagemLoteStaging = Mapper.Map <List <TransacaoPassagemLoteStaging> >((transacoes ?? new List <TransacaoPassagemArtespDto>())); transacaoPassagemLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(transacaoPassagemLoteStaging, "TransacaoPassagemLoteStaging"); var veiculos = passagensAprovadas.Any(c => c.Veiculo != null) ? passagensAprovadas.Select(c => c.Veiculo) : null; var veiculosLoteStaging = Mapper.Map <List <VeiculoLoteStaging> >((veiculos ?? new List <VeiculoDto>())); veiculosLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(veiculosLoteStaging, "VeiculoLoteStaging"); var passagens = passagensAprovadas.Any(c => c.Passagem != null) ? passagensAprovadas.Select(c => c.Passagem) : null; var passagensLoteStaging = Mapper.Map <List <PassagemLoteStaging> >((passagens ?? new List <PassagemDto>())); passagensLoteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(passagensLoteStaging, "PassagemLoteStaging"); response.QtdAceiteManualReenvioStaging = aceiteManualReenvioPassagemLoteStaging.Count; response.QtdConfiguracaoAdesaoStaging = configuracaoAdesaoLoteStaging.Count; response.QtdViagemValePedagioStaging = detalheViagemLoteStaging.Count; response.QtdDivergenciaCategoriaConfirmadaStaging = divergenciaCategoriaConfirmadaLoteStaging.Count; response.QtdEstornoStaging = estornoPassagemLoteStaging.Count; response.QtdEventoStaging = eventoLoteStaging.Count; response.QtdExtratoStaging = extratoLoteStaging.Count; response.QtdExtratoEstornoStaging = extratoEstornoLoteStaging.Count; response.QtdSolicitacaoImagemStaging = solicitacaoImagemLoteStaging.Count; response.QtdTransacaoPassagemStaging = transacaoPassagemLoteStaging.Count; response.QtdVeiculosStaging = veiculosLoteStaging.Count; response.QtdPassagensStaging = passagensLoteStaging.Count; response.SucessoStagingConectSys = true; } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Staging Passagens Aprovadas Artesp - ConectSys.", ex); response.SucessoStagingConectSys = false; } } Log.Debug($"ID: {execucaoId} - Fim - Staging Passagens aprovadas Artesp - ConectSys."); }, passagensAprovadas); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoStagingConectSys = sw.Elapsed; }
/// <summary> /// Executa a procedure "SP_SalvarPassagensReprovadas" na base do ConectSys. /// </summary> /// <param name="passagensReprovadas">PassagemReprovadaArtespDto[]</param> /// <param name="response">PassagensReprovadasArtespResponse</param> /// <param name="execucaoId">Sessão de execução.</param> private void SalvarReprovadasConectSys(List <PassagemReprovadaArtespDto> passagensReprovadas, PassagensReprovadasArtespResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((qtdRegistros) => { Log.Debug($"ID: {execucaoId} - Início - Execução procedure SP_SalvarPassagensReprovadas - ConectSys."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { var command = new SalvarPassagensReprovadasSysCommand(datasourceConectSys); var filter = new PassagemReprovadaSysFilter { ExecucaoId = execucaoId, Passagens = passagensReprovadas.Any(c => c.Passagem != null) ? passagensReprovadas.Select(c => c.Passagem) : null, TransacoesRecusada = passagensReprovadas.Any(c => c.TransacaoRecusada != null) ? passagensReprovadas.Select(c => c.TransacaoRecusada) : null, TransacoesRecusadaParceiro = passagensReprovadas.Any(c => c.TransacaoRecusadaParceiro != null) ? passagensReprovadas.Select(c => c.TransacaoRecusadaParceiro) : null, Veiculos = passagensReprovadas.Any(c => c.Veiculo != null) ? passagensReprovadas.Select(c => c.Veiculo) : null }; var dto = command.Execute(filter); if (dto.Status) { response.SucessoConectSys = true; response.ErroConectSys = String.Empty; } else { Log.Error($"ID: {execucaoId} - Erro - Execução procedure SP_SalvarPassagensReprovadas - ConectSys. Retorno: {dto}."); response.SucessoConectSys = false; response.ErroConectSys = dto.ToString(); AtualizarFalhaPassagensReprovadas(datasourceConectSys, execucaoId, dto.ToString()); } } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Execução procedure SP_SalvarPassagensReprovadas - ConectSys.", ex); response.SucessoConectSys = false; AtualizarFalhaPassagensReprovadas(datasourceConectSys, execucaoId, ex.Message); } } Log.Debug($"ID: {execucaoId} - Fim - Execução procedure SP_SalvarPassagensReprovadas - ConectSys."); }, 0); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoConectSys = sw.Elapsed; }
/// <summary> /// Executa a procedure "SP_SalvarPassagensAprovadas" na base do ConectSys. /// </summary> /// <param name="passagensAprovadas">PassagemAprovadaArtespDto[]</param> /// <param name="response">PassagensAprovadasArtespResponse</param> /// <param name="execucaoId">Sessão de execução.</param> private void SalvarAprovadasConectSys(List <PassagemAprovadaArtespDto> passagensAprovadas, PassagensAprovadasArtespResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((qtdRegistros) => { Log.Debug($"ID: {execucaoId} - Início - Execução procedure SP_SalvarPassagensAprovadas - ConectSys."); using (var datasource = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { var command = new SalvarPassagensAprovadasSysCommand(datasource); var filter = new PassagemAprovadaSysFilter { ExecucaoId = execucaoId, Passagens = passagensAprovadas.Any(c => c.Passagem != null) ? passagensAprovadas.Select(c => c.Passagem) : null, TransacoesPassagens = passagensAprovadas.Any(c => c.TransacaoPassagemArtesp != null) ? passagensAprovadas.Select(c => c.TransacaoPassagemArtesp) : null, Extratos = passagensAprovadas.Any(c => c.Extrato != null) ? passagensAprovadas.Select(c => c.Extrato) : null, EstornosPassagem = passagensAprovadas.Any(c => c.EstornoPassagem != null) ? passagensAprovadas.Select(c => c.EstornoPassagem) : null, ExtratosEstornos = passagensAprovadas.Any(c => c.ExtratoEstorno != null) ? passagensAprovadas.Select(c => c.ExtratoEstorno) : null, Veiculos = passagensAprovadas.Any(c => c.Veiculo != null) ? passagensAprovadas.Select(c => c.Veiculo) : null, Eventos = passagensAprovadas.Any(c => c.EventoPrimeiraPassagemManual != null) ? passagensAprovadas.Select(c => c.EventoPrimeiraPassagemManual) : null, DetalhesViagem = passagensAprovadas.Any(c => c.Viagens != null) ? passagensAprovadas.SelectMany(c => c.Viagens) : null, SolicitacoesImagem = passagensAprovadas.Any(c => c.SolicitacaoImagem != null) ? passagensAprovadas.Select(c => c.SolicitacaoImagem) : null, AceitesManuaisReenvioPassagem = passagensAprovadas.Any(c => c.AceiteManualReenvioPassagem != null) ? passagensAprovadas.Select(c => c.AceiteManualReenvioPassagem) : null, ConfiguracoesAdesao = passagensAprovadas.Any(c => c.ConfiguracaoAdesao != null) ? passagensAprovadas.Select(c => c.ConfiguracaoAdesao) : null, DivergenciasCategoriaConfirmada = passagensAprovadas.Any(c => c.DivergenciaCategoriaConfirmada != null) ? passagensAprovadas.Select(c => c.DivergenciaCategoriaConfirmada) : null }; var dto = command.Execute(filter); if (dto.Status) { response.SucessoConectSys = true; response.ErroConectSys = String.Empty; } else { Log.Error($"ID: {execucaoId} - Erro - Execução procedure SP_SalvarPassagensAprovadas - ConectSys. Retorno: {dto}."); response.SucessoConectSys = false; response.ErroConectSys = dto.ToString(); AtualizarFalhaPassagensAprovadas(datasource, execucaoId, dto.ToString()); } } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Execução procedure SP_SalvarPassagensAprovadas - ConectSys.", ex); response.SucessoConectSys = false; AtualizarFalhaPassagensAprovadas(datasource, execucaoId, ex.Message); } } Log.Debug($"ID: {execucaoId} - Fim - Execução procedure SP_SalvarPassagensAprovadas - ConectSys."); }, 0); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoConectSys = sw.Elapsed; }
private void SalvarAprovadasStagingConectSys(List <PassagemAprovadaEDIDto> passagensAprovadas, PassagensAprovadasEdiResponse response, Guid execucaoId) { var sw = new Stopwatch(); sw.Start(); try { TransactionContextHelper.ExecuteTransaction((aprovadas) => { Log.Debug($"ID: {execucaoId} Início - Staging Passagens Aprovadas Edi - Conectsys."); using (var datasourceConectSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys)) { try { var transacoes = passagensAprovadas.Any(c => c.TransacaoPassagemEDI != null) ? passagensAprovadas.Where(c => c.TransacaoPassagemEDI != null).Select(c => c.TransacaoPassagemEDI) : null; var transacoesStaging = Mapper.Map <List <TransacaoPassagemLoteStaging> >((transacoes ?? new List <TransacaoPassagemEDIDto>())); var transacoesProvisorias = passagensAprovadas.Any(c => c.TransacaoProvisoriaEDI != null) ? passagensAprovadas.Where(c => c.TransacaoProvisoriaEDI != null).Select(c => c.TransacaoProvisoriaEDI) : null; var transacaosProvisoriaStaging = Mapper.Map <IEnumerable <TransacaoProvisoriaEDIDto>, IEnumerable <TransacaoPassagemLoteStaging> >(transacoesProvisorias); if (transacaosProvisoriaStaging != null) { transacoesStaging.AddRange(transacaosProvisoriaStaging); } transacoesStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsertTransacoes(transacoesStaging, "TransacaoPassagemEdiStaging"); var detalheTrfRecusados = passagensAprovadas.Any(c => c.DetalheTRFRecusaEvasao != null) ? passagensAprovadas.Select(c => c.DetalheTRFRecusaEvasao) : null; var detalheTrfRecusadosStaging = Mapper.Map <List <DetalheTRFRecusadoLoteStaging> >((detalheTrfRecusados ?? new List <DetalheTRFRecusadoDto>())); detalheTrfRecusadosStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(detalheTrfRecusadosStaging, "DetalheTRFRecusadoLoteStaging"); var detalheTrfAprovadosManualmente = passagensAprovadas.Any(c => c.DetalheTRFAprovadoManualmente != null) ? passagensAprovadas.Select(c => c.DetalheTRFAprovadoManualmente) : null; var detalheTrfAprovadosManualmenteStaging = Mapper.Map <List <DetalheTRFAprovadaManualmenteLoteStaging> >((detalheTrfAprovadosManualmente ?? new List <DetalheTRFAprovadoManualmenteDto>())); detalheTrfAprovadosManualmenteStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(detalheTrfAprovadosManualmenteStaging, "DetalheTRFAprovadaManualmenteLoteStaging"); var extratos = passagensAprovadas.Any(c => c.Extrato != null) ? passagensAprovadas.Select(c => c.Extrato) : null; var extratosStaging = Mapper.Map <List <ExtratoLoteStaging> >((extratos ?? new List <ExtratoDto>())); extratosStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(extratosStaging, "ExtratoLoteStaging"); var eventos = passagensAprovadas.Any(c => c.EventoPrimeiraPassagemManual != null) ? passagensAprovadas.Select(c => c.EventoPrimeiraPassagemManual) : null; var eventoStaging = Mapper.Map <List <EventoLoteStaging> >((eventos ?? new List <EventoDto>())); eventoStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(eventoStaging, "EventoLoteStaging"); var configuracoesAdesao = passagensAprovadas.Any(c => c.ConfiguracaoAdesao != null) ? passagensAprovadas.Select(c => c.ConfiguracaoAdesao) : null; var configuracoesAdesaoStaging = Mapper.Map <List <ConfiguracaoAdesaoLoteStaging> >((configuracoesAdesao ?? new List <ConfiguracaoAdesaoDto>())); configuracoesAdesaoStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(configuracoesAdesaoStaging, "ConfiguracaoAdesaoLoteStaging"); var divergenciasCategoriaConfirmada = passagensAprovadas.Any(c => c.DivergenciaCategoriaConfirmada != null) ? passagensAprovadas.Select(c => c.DivergenciaCategoriaConfirmada) : null; var divergenciasCategoriaConfirmadaStaging = Mapper.Map <List <DivergenciaCategoriaConfirmadaLoteStaging> >((divergenciasCategoriaConfirmada ?? new List <DivergenciaCategoriaConfirmadaDto>())); divergenciasCategoriaConfirmadaStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(divergenciasCategoriaConfirmadaStaging, "DivergenciaCategoriaConfirmadaLoteStaging"); var veiculos = passagensAprovadas.Any(c => c.Veiculo != null) ? passagensAprovadas.Select(c => c.Veiculo) : null; var veiculosStaging = Mapper.Map <List <VeiculoLoteStaging> >((veiculos ?? new List <VeiculoDto>())); veiculosStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(veiculosStaging, "VeiculoLoteStaging"); var detalhesViagem = passagensAprovadas.Any(c => c.Viagens != null) ? passagensAprovadas.SelectMany(c => c.Viagens) : null; var detalhesViagemStaging = Mapper.Map <List <DetalheViagemLoteStaging> >((detalhesViagem ?? new List <DetalheViagemDto>())); detalhesViagemStaging.ForEach(x => x.ExecucaoId = execucaoId); datasourceConectSys.Connection.BulkInsert(detalhesViagemStaging, "DetalheViagemLoteStaging"); response.QtdTransacaoPassagemEDIStaging = transacoesStaging.Count; response.QtdDetalheTRFRecusaEvasaoStaging = detalheTrfRecusadosStaging.Count; response.QtdTransacaoProvisoriaEDIStaging = transacoesStaging.Count(x => x.TransacaoProvisoria); response.QtdDetalheTRFAprovadoManualmenteStaging = detalheTrfAprovadosManualmenteStaging.Count; response.QtdExtratoStaging = extratosStaging.Count; response.QtdEventoStaging = eventoStaging.Count; response.QtdConfiguracaoAdesaoStaging = configuracoesAdesaoStaging.Count; response.QtdDivergenciaCategoriaConfirmadaStaging = divergenciasCategoriaConfirmadaStaging.Count; response.QtdVeiculoStaging = veiculosStaging.Count; response.QtdDetalheViagemStaging = detalhesViagemStaging.Count; } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal - Staging Passagens Aprovadas Edi - ConectSys.", ex); response.SucessoStagingConectSys = false; } } Log.Debug($"ID: {execucaoId} - Fim - Staging Passagens Aprovadas Edi - ConectSys."); }, passagensAprovadas); } catch (Exception ex) { Log.Fatal($"ID: {execucaoId} - Erro Fatal. Erro: {ex.Message}", ex); } sw.Stop(); response.TempoExecucaoStagingConectSys = sw.Elapsed; Log.Debug($"Json Response BulkInsert {JsonConvert.SerializeObject(response)}"); }