Beispiel #1
0
        /// <summary>
        /// Recebe coleção de passagens reprovadas para processamento no ConectSys e no Mensageria.
        /// </summary>
        /// <param name="PassagensReprovadas">PassagemReprovadaArtespDto[]</param>
        /// <returns>PassagensReprovadasArtespResponse</returns>
        public PassagensReprovadasArtespResponse Execute(List <PassagemReprovadaArtespDto> PassagensReprovadas)
        {
            var response = new PassagensReprovadasArtespResponse();

            var execucaoId = Guid.NewGuid();

            response.ExecucaoId = execucaoId;

            Log.Info($"ID: {execucaoId} - Início - Execução Passagens Reprovadas Artesp.");


            if (PassagensReprovadas != null && PassagensReprovadas.Any())
            {
                SalvarReprovadasStagingConectSys(PassagensReprovadas, response, execucaoId);

                SalvarProcessadasReprovadasStagingMensageria(PassagensReprovadas, response, execucaoId);

                SalvarReprovadasConectSys(PassagensReprovadas, response, execucaoId);

                SalvarProcessadasReprovadasMensageria(PassagensReprovadas, response, execucaoId);
            }


            var jsonResponse = JsonConvert.SerializeObject(response);

            Log.Info($"ID: {execucaoId} - Fim - Execução Passagens Reprovadas Artesp. Retorno: {jsonResponse}.");

            return(response);
        }
Beispiel #2
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;
        }
Beispiel #3
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;
        }
Beispiel #4
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;
        }
Beispiel #5
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;
        }