protected ActorHandlerBase()
 {
     _dataSourceConectSysReadOnly = DataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
     _dataSourceFallBack          = DataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
     _dataSourceMensageria        = DataSourceProvider.GetDataSource(DbConnectionDataSourceType.Mensageria);
     _testDataSourceHealthy       = ServiceBusUtil.DataBaseHealthyCheck();
 }
        /// <summary>
        /// Inicializa o gerador de passagens pendentes.
        /// </summary>
        public GeradorPassagemPendenteEDI()
        {
            var dataProvider = new DbConnectionDataSourceProvider();

            ReadOnlyDataSource = dataProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
            DataSource         = dataProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
        }
Exemplo n.º 3
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;
        }
        public void Validate(DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack)
        {
            var queryCountAceitManual =
                new ObterAceiteManualReenvioIdPorPassagemNaoProcessadoQuery();
            var aceiteManualId = DataBaseConnection.HandleExecution(queryCountAceitManual.Execute,
                                                                    new AceiteManualReenvioPassagemPorPassagemNaoProcessadoFilter(PassagemPendenteArtesp.ConveniadoPassagemId, PassagemPendenteArtesp.Conveniado.CodigoProtocoloArtesp));

            if (aceiteManualId > 0)
            {
                PassagemPendenteArtesp.PossuiAceiteManualReenvioPassagem = true;
            }
        }
Exemplo n.º 5
0
        public CalcularRepasseParkBo(DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack, PassagemAprovadaEstacionamento passagemAprovadaEstacionamento)
        {
            _passagemAprovada           = passagemAprovadaEstacionamento;
            DataSourceConectSysReadOnly = dbSysReadOnly;
            DataSourceFallBack          = dbSysFallBack;

            var obterRepasse = new ObterRepasseVigentePorPlanoQuery();

            var filter = new ObterRepasseFilter(passagemAprovadaEstacionamento.Pista.CodigoPista, passagemAprovadaEstacionamento.DataPassagem);

            RepasseDto = obterRepasse.Execute(filter);
        }
Exemplo n.º 6
0
        public SlaListaNelaEdiValidator(DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack, PassagemPendenteEDI passagemPendenteEdi)
        {
            _dataSourceConectSysReadOnly = dbSysReadOnly;
            _dataSourceFallBack          = dbSysFallBack;
            _passagemPendenteEdi         = passagemPendenteEdi;
            _validatorRuleSet            = new GenericValidator <PassagemPendenteEDI>();

            var obterConveniado = new ObterConveniadoQuery(_dataSourceConectSysReadOnly,
                                                           _dataSourceFallBack);

            _conveniado = obterConveniado.Execute(_passagemPendenteEdi.Conveniado.CodigoProtocolo);
        }
        public ProcessadorPassagemAprovadaParkHandler()
        {
            _dataSource = new ServiceBusDataSourceBase("TransacoesServiceBus", ServiceBusUtil.FactoriesCount);
            _dataSourceConectSysReadOnly = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
            _dataSourceFallBack          = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);

            if (!string.IsNullOrEmpty(_chaveCriptografiaBanco))
            {
                return;
            }
            var querySistema = new ObterConfiguracaoSistemaQuery(true, _dataSourceConectSysReadOnly, _dataSourceFallBack);

            _chaveCriptografiaBanco = querySistema.Execute(ConfiguracaoSistemaModel.ChaveCriptografiaBanco).Valor;
        }
Exemplo n.º 8
0
        /// <summary>
        /// Inicializa o gerador de passagens pendentes.
        /// </summary>
        public GeradorPassagensPendentes()
        {
            Log.Debug(GeradorPassagemPendenteResource.GetDataSource);

            var dataProvider = new DbConnectionDataSourceProvider();

            _readOnlyDataSource   = dataProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
            _dataSource           = dataProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
            _dataSourceMensageria = dataProvider.GetDataSource(DbConnectionDataSourceType.Mensageria);
            _serviceBusDataSource = new ServiceBusDataSourceBase("TransacoesServiceBus", ServiceBusUtil.FactoriesCount, ServiceBusUtil.BatchFlushInterval, ServiceBusUtil.LockDuration);

            var topicNamePadrao = ServiceBusUtil.ObterNomeQueuePassagem();

            _passagemPendenteTopicCommand = new PassagemPendenteTopicCommand(_serviceBusDataSource, true, topicNamePadrao);
            _obterConcessionariasQuery    = new ObterConcessionariasQuery(true, _readOnlyDataSource, _dataSource);
        }
Exemplo n.º 9
0
        public LeitorPassagemPendenteHandler(DbConnectionDataSource readOnlyDataSource,
                                             DbConnectionDataSource dataSource,
                                             ServiceBusDataSourceBase serviceBusDataSource,
                                             RestDataSource restDataSource
                                             )
        {
            _readOnlyDataSource   = readOnlyDataSource;
            _dataSource           = dataSource;
            _serviceBusDataSource = serviceBusDataSource;
            _restDataSource       = restDataSource;

            var nomeTopicPadrao = ServiceBusUtil.ObterNome();

            _obterConcessionariasQuery     = new ObterConcessionariasQuery(true, readOnlyDataSource, _dataSource);
            _obterPassagensQuery           = new ObterPassagensTopicQuery(_serviceBusDataSource, false, ServiceBusUtil.BatchSize, nomeTopicPadrao);
            _enviarPassagemParaAkkaCommand = new EnviarPassagemParaAkkaCommand(_restDataSource);
        }
        /// <summary>
        /// Cria um handler gerador de passagens pendentes de processamento.
        /// </summary>
        public GeradorPassagemPendenteEdiHandler()
        {
            try
            {
                var dataProvider = new DbConnectionDataSourceProvider();

                _readOnlyDataSource   = dataProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
                _dataSource           = dataProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
                _serviceBusDataSource = new ServiceBusDataSourceBase("TransacoesServiceBus", ServiceBusUtil.FactoriesCount);

                var topicNamePadrao = ServiceBusUtil.ObterNomeTopicPassagem();
                _passagemPendenteTopicCommand = new PassagemPendenteTopicCommand(_serviceBusDataSource, true, topicNamePadrao);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
            }
        }
Exemplo n.º 11
0
        public CalcularRepasseEdiBo(PassagemAprovadaEDI passagemAprovadaEdi, DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack)
        {
            _passagemAprovadaEdi        = passagemAprovadaEdi;
            DataSourceConectSysReadOnly = dbSysReadOnly;
            DataSourceFallBack          = dbSysFallBack;

            var queryObterRepasse = new ObterRepasseQuery();

            _transacaoPassagem = passagemAprovadaEdi.StatusCobranca == StatusCobranca.Provisoria
                ? passagemAprovadaEdi.TransacaoProvisoria
                : passagemAprovadaEdi.Transacao;

            RepasseDto = queryObterRepasse.Execute(new ObterRepasseFilter(
                                                       dataPassagem: _passagemAprovadaEdi.DataPassagem,
                                                       conveniadoId: _passagemAprovadaEdi.Conveniado.Id ?? 0,
                                                       pracaId: _passagemAprovadaEdi.Praca.Id ?? 0,
                                                       codigoPista: _passagemAprovadaEdi.Pista.CodigoPista,
                                                       planoId: _passagemAprovadaEdi.Adesao.PlanoId
                                                       ));
        }
Exemplo n.º 12
0
        /// <summary>
        /// Atualiza o status de falha das passagens processadas.
        /// </summary>
        /// <param name="dataSource">DbConnectionDataSource</param>
        /// <param name="execucaoId">Sessão de execução.</param>
        /// <param name="motivo">Motivo do erro.</param>
        private void AtualizarFalhaPassagensProcessadas(DbConnectionDataSource dataSource, Guid execucaoId, string motivo)
        {
            Log.Debug($"ID: {execucaoId} - Início - Atualizar Falha Passagens Processadas Artesp - Mensageria.");

            try
            {
                var command = new AtualizarFalhaPassagensProcessadasCommand(dataSource);
                var args    = new AtualizarFalhaPassagensProcessadasArgs
                {
                    ExecucaoId = execucaoId,
                    Motivo     = motivo
                };
                command.Execute(args);
            }
            catch (Exception ex)
            {
                Log.Fatal($"ID: {execucaoId} - Erro Fatal - Atualizar Falha Passagens Processadas Artesp. Erro: {ex.Message}", ex);
            }

            Log.Debug($"ID: {execucaoId} - Fim - Atualizar Falha Passagens Processadas Artesp - Mensageria.");
        }
        /// <summary>
        /// Cria um handler gerador de passagens pendentes de processamento.
        /// </summary>
        /// <param name="readOnlyDataSource">Fonte de dados readonly.</param>
        /// <param name="dataSource">Fonte de dados ConectSys.</param>
        /// <param name="dataSourceMensageria">Fonte de dados mensageria.</param>
        public GeradorPassagensPendentesHandler(DbConnectionDataSource readOnlyDataSource
            , DbConnectionDataSource dataSource
            , DbConnectionDataSource dataSourceMensageria
            , ServiceBusDataSourceBase serviceBusDataSource
            , ObterConcessionariasQuery obterConcessionariasQuery
            , PassagemPendenteTopicCommand passagemPendenteTopicCommand)
        {
            try
            {
                _readOnlyDataSource = readOnlyDataSource;
                _dataSource = dataSource;
                _dataSourceMensageria = dataSourceMensageria;
                _serviceBusDataSource = serviceBusDataSource;
                _passagemPendenteTopicCommand = passagemPendenteTopicCommand;

            }
            catch (Exception ex)
            {
                Log.Fatal(ex.Message, ex);
            }
        }
        public void Execute(PassagemPendenteArtesp passagemPendenteArtesp,
                            DbConnectionDataSource dbSysReadOnly)
        {
            var query      = new ObterCategoriaVeiculoQuery(true, dbSysReadOnly);
            var categorias = query.Execute().ToList();

            if (passagemPendenteArtesp.CategoriaTag.Codigo > 0)
            {
                passagemPendenteArtesp.CategoriaTag.Id = categorias
                                                         .FirstOrDefault(c => c.Codigo == passagemPendenteArtesp.CategoriaTag.Codigo)?.CategoriaVeiculoId;
            }

            if (passagemPendenteArtesp.CategoriaCobrada.Codigo > 0)
            {
                passagemPendenteArtesp.CategoriaCobrada.Id = categorias
                                                             .FirstOrDefault(c => c.Codigo == passagemPendenteArtesp.CategoriaCobrada.Codigo)?.CategoriaVeiculoId;
            }

            if (passagemPendenteArtesp.CategoriaDetectada.Codigo > 0)
            {
                passagemPendenteArtesp.CategoriaDetectada.Id = categorias
                                                               .FirstOrDefault(c => c.Codigo == passagemPendenteArtesp.CategoriaDetectada.Codigo)?.CategoriaVeiculoId;
            }
        }
Exemplo n.º 15
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);
            }
        }
Exemplo n.º 16
0
 public ObterListaTransacaoPassagemQuery(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
Exemplo n.º 17
0
 public PossuiSaldoSuficienteValidator(DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack, PassagemPendenteEDI passagemPendenteEdi)
 {
     _dataSourceConectSysReadOnly = dbSysReadOnly;
     _dataSourceFallBack          = dbSysFallBack;
     _passagemPendenteEdi         = passagemPendenteEdi;
 }
Exemplo n.º 18
0
 public ValidadorSlaListaNelaEdiHandler()
 {
     _dataSourceConectSysReadOnly = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
     _dataSourceFallBack          = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
 }
Exemplo n.º 19
0
 public AtualizarFalhaPassagensProcessadasCommand(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
Exemplo n.º 20
0
 public ConcessionariaHandler()
 {
     _dbConnectionDataSourceSys      = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
     _dbConnectionDataSourceFallBack = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
 }
Exemplo n.º 21
0
 public AlterarDetalheParkCommand(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
Exemplo n.º 22
0
 public CriarPassagemCompletaEdiQuery(DbConnectionDataSource dataSource, DbConnectionDataSource dataSourceFallBack) : base(dataSource)
 {
     _dataSource         = dataSource;
     _dataSourceFallBack = dataSourceFallBack;
 }
 public ListarDetalhePassagemPendenteEstacionamentoQuery(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
 public SalvarPassagensInvalidasMensageriaCommand(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
 public AtualizarRegistroTransacaoProcessadoCommand(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
Exemplo n.º 26
0
 public ListarDetalheTrnQuery(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
Exemplo n.º 27
0
 public SalvarPassagensReprovadasSysCommand(DbConnectionDataSource dataSource) : base(dataSource)
 {
 }
Exemplo n.º 28
0
 public CriarPassagemCompletaParkQuery(DbConnectionDataSource dataSourceConectSysReadOnly, DbConnectionDataSource dataSourceFallBack)
     : base(dataSourceConectSysReadOnly)
 {
     _dataSourceConectSysReadOnly = dataSourceConectSysReadOnly;
     _dataSourceFallBack          = dataSourceFallBack;
 }
 public HorarioPassagemIncompativelValidator(DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack, PassagemPendenteEDI passagemPendenteEdi)
 {
     _dataSourceConectSysReadOnly = dbSysReadOnly;
     _dataSourceFallBack          = dbSysFallBack;
     _passagemPendenteEdi         = passagemPendenteEdi;
 }
Exemplo n.º 30
0
 public GeradorPassagemReprovadaEdiHandler()
 {
     _dataSourceConectSysReadOnly =
         AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);
     _dataSourceFallBack = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys);
 }