コード例 #1
0
        /// <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;
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        /// <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));
        }
コード例 #7
0
        /// <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;
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        /// <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;
        }
コード例 #10
0
        /// <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;
        }
コード例 #11
0
        /// <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;
        }
コード例 #12
0
        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)}");
        }