public async Task <bool> Executar(MensagemRabbit mensagem) { var filtro = UtilsDto.ObterFiltroParametrosIniciais(mensagem); var ultimaAtualizacao = filtro != null ? await mediator.Send(new ObterDataUltimaExecucaoPorTipoQuery(ExecucaoTipo.FuncionarioAdicionar)) : new DateTime(filtro.AnoLetivo, 1, 1); var paginacao = new Paginacao(0, 0); var parametrosCargaInicialDto = filtro != null ? new ParametrosCargaInicialDto(filtro.TiposUes, filtro.Ues, filtro.Turmas, filtro.AnoLetivo) : await mediator.Send(new ObterParametrosCargaIncialPorAnoQuery(DateTime.Today.Year)); var funcionariosParaIncluirGoogle = await mediator.Send(new ObterFuncionariosParaIncluirGoogleQuery(ultimaAtualizacao, paginacao, string.Empty, parametrosCargaInicialDto)); foreach (var funcionarioParaIncluirGoogle in funcionariosParaIncluirGoogle.Items) { try { var publicarFuncionario = await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaFuncionarioIncluir, RotasRabbit.FilaFuncionarioIncluir, funcionarioParaIncluirGoogle)); if (!publicarFuncionario) { await IncluirFuncionarioComErroAsync(funcionarioParaIncluirGoogle, ObterMensagemDeErro(funcionarioParaIncluirGoogle.Rf)); } } catch (Exception ex) { await IncluirFuncionarioComErroAsync(funcionarioParaIncluirGoogle, ObterMensagemDeErro(funcionarioParaIncluirGoogle.Rf, ex)); } } await mediator.Send(new AtualizaExecucaoControleCommand(ExecucaoTipo.FuncionarioAdicionar, DateTime.Today)); return(true); }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { try { var filtroCargaInicial = UtilsDto.ObterFiltroParametrosIniciais(mensagemRabbit); var usuarioErros = await mediator.Send(new ObtemUsuariosErrosPorTipoQuery(UsuarioTipo.Funcionario)); if (!usuarioErros?.Any() ?? true) { return(true); } foreach (var usuarioErro in usuarioErros) { var filtroFuncionarioErro = new FiltroUsuarioErroDto(usuarioErro, filtroCargaInicial); var publicarFuncionario = await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaFuncionarioErroTratar, RotasRabbit.FilaFuncionarioErroTratar, filtroFuncionarioErro)); if (!publicarFuncionario) { SentrySdk.CaptureMessage($"Não foi possível inserir o tratamento de erro do funcionário RF{usuarioErro.UsuarioId} na fila."); continue; } await ExcluirUsuarioErroAsync(usuarioErro); } return(true); } catch (Exception ex) { SentrySdk.CaptureException(ex); } return(false); }