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; }
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); } }