Ejemplo n.º 1
0
        public async Task GerarMassas()
        {
            Processamento processamento = null;
            var           status        = StatusProcessamento.Sucesso;

            try
            {
                _logger.Information("Iniciando geração de massa");

                processamento = await _processamentoService.RegistrarProcessamento();
                await GerarMassaEmPostos();
                await GerarMassaEmPostosParaAtualizar();

                _logger.Information("Geração de massa concluída com sucesso");
            }
            catch (Exception ex)
            {
                _logger.Error($"Houve o seguinte erro: {ex.Message}");
                _logger.Information("Iniciando processo de remoção");

                await RemoverValoresExistentes(_repositorioPosto);
                await RemoverValoresExistentes(_repositorioPostoParaAtualizar);

                status = StatusProcessamento.Falha;

                _logger.Information("Processo de remoção concluído");
            }
            finally
            {
                await _processamentoService.AtualizarProcessamento(processamento, status);

                string textoStatus = status == StatusProcessamento.Sucesso ? "sucesso" : "falha";
                _logger.Information($"Finalizando processamento com status: {textoStatus}");
            }
        }
        public async Task AtualizarPostos()
        {
            Processamento processamento = await _processamentoService.RegistrarProcessamento();

            var status = StatusProcessamento.Sucesso;

            try
            {
                _logger.Information("Iniciado processo de atualização de postos");

                await DesativarPostosAtuais();
                await InserirNovosPostos();
                await AtualizarRollbackNovosPostos();
                await DesativarRollbackPostosAntigos();

                _logger.Information("Processo de atualização de postos finalizado com sucesso");
            }
            catch (Exception ex)
            {
                _logger.Error($"Houve o seguinte erro: {ex.Message}");
                _logger.Information("Iniciando processo de rollback");

                await FazerRollback();

                status = StatusProcessamento.Falha;

                _logger.Information("Processo de rollback concluído");
            }
            finally
            {
                _logger.Information("Removendo postos da tabela PostosParaAtualizar");
                await RemoverPostosParaAtualizar();

                string textoStatus = status == StatusProcessamento.Sucesso ? "sucesso" : "falha";
                _logger.Information($"Finalizando processamento com status: {textoStatus}");
                await _processamentoService.AtualizarProcessamento(processamento, status);
            }
        }