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); }
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; } }
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); }
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; }
/// <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); }
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); } }
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 )); }
/// <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; } }
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); } }
public ObterListaTransacaoPassagemQuery(DbConnectionDataSource dataSource) : base(dataSource) { }
public PossuiSaldoSuficienteValidator(DbConnectionDataSource dbSysReadOnly, DbConnectionDataSource dbSysFallBack, PassagemPendenteEDI passagemPendenteEdi) { _dataSourceConectSysReadOnly = dbSysReadOnly; _dataSourceFallBack = dbSysFallBack; _passagemPendenteEdi = passagemPendenteEdi; }
public ValidadorSlaListaNelaEdiHandler() { _dataSourceConectSysReadOnly = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly); _dataSourceFallBack = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys); }
public AtualizarFalhaPassagensProcessadasCommand(DbConnectionDataSource dataSource) : base(dataSource) { }
public ConcessionariaHandler() { _dbConnectionDataSourceSys = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly); _dbConnectionDataSourceFallBack = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys); }
public AlterarDetalheParkCommand(DbConnectionDataSource dataSource) : base(dataSource) { }
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) { }
public ListarDetalheTrnQuery(DbConnectionDataSource dataSource) : base(dataSource) { }
public SalvarPassagensReprovadasSysCommand(DbConnectionDataSource dataSource) : base(dataSource) { }
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; }
public GeradorPassagemReprovadaEdiHandler() { _dataSourceConectSysReadOnly = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly); _dataSourceFallBack = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSys); }