public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { try { var errosParaTratar = await mediator.Send(new ObterAlunoCursoRemovidoErroQuery()); if (errosParaTratar != null && errosParaTratar.Any()) { foreach (var erroParaTratar in errosParaTratar) { try { var dto = new CursoUsuarioRemoverDto { CursoUsuarioId = erroParaTratar.CursoUsuarioId, TipoUsuario = erroParaTratar.UsuarioTipo.Equals(1) ? (int)UsuarioTipo.Aluno : (int)UsuarioTipo.Professor, TipoGsa = erroParaTratar.UsuarioTipo.Equals(1) ? (int)UsuarioCursoGsaTipo.Estudante : (int)UsuarioCursoGsaTipo.Professor, UsuarioId = erroParaTratar.UsuarioId, CursoId = erroParaTratar.CursoId, UsuarioGsaId = erroParaTratar.UsuarioIdGsa, }; await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaCursoUsuarioRemovidoSync, dto)); await ExcluirCursoErroAsync(erroParaTratar); } catch (Exception ex) { SentrySdk.CaptureException(ex); } } } return(true); } catch (Exception ex) { SentrySdk.CaptureException(ex); } return(false); }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { var dto = mensagemRabbit.ObterObjetoMensagem <FiltroTurmaRemoverCursoUsuarioDto>(); var professoresASeremRemovidos = await mediator.Send(new ObterProfessoresParaRemoverCursoQuery(dto.TurmaId.ToString(), dto.DatasProfessor.DataInicio, dto.DatasProfessor.DataFim)); foreach (var professorASerRemovido in professoresASeremRemovidos) { var professorCurso = await ObterInformacoesDoProfessorECurso(professorASerRemovido); if (professorCurso.professor == null) { continue; } var cursoUsuarioRemover = new CursoUsuarioRemoverDto { CursoUsuarioId = professorCurso.cursoUsuarioId, CursoId = professorCurso.curso.CursoId, TipoUsuario = (int)UsuarioTipo.Professor, TipoGsa = (int)UsuarioCursoGsaTipo.Professor, UsuarioId = professorCurso.professor.Indice, UsuarioGsaId = professorCurso.professor.GoogleClassRoomId, }; if (ProfessorASerRemovidoEhResponsavelPeloCurso(professorCurso.professor, professorCurso.curso)) { var funcionariosDoCurso = await mediator.Send(new ObterFuncionariosPorCursoQuery(professorCurso.curso.CursoId)); var novoResponsavel = DefinaNovoResponsavelPeloCurso(funcionariosDoCurso, professorCurso.professor); var donoDoCursoAlterado = await mediator.Send(new AtribuirDonoCursoCommand(professorCurso.curso.TurmaId, professorCurso.curso.ComponenteCurricularId, novoResponsavel.GoogleClassroomId, novoResponsavel.Email)); } await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaCursoUsuarioRemovidoSync, cursoUsuarioRemover)); } return(true); }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { var dto = mensagemRabbit.ObterObjetoMensagem <FiltroTurmaRemoverCursoUsuarioDto>(); var parametrosCargaInicialDto = await mediator.Send(new ObterParametrosCargaIncialPorAnoQuery(DateTime.Today.Year)); var alunosCodigosInativosEOL = await mediator.Send(new ObterAlunosCodigosInativosPorAnoLetivoETurmaQuery(DateTime.Today.Year, dto.TurmaId, dto.DatasAluno.DataInicio, dto.DatasAluno.DataFim, parametrosCargaInicialDto)); if (alunosCodigosInativosEOL != null && alunosCodigosInativosEOL.Any()) { var cursosUsuarios = await mediator.Send(new ObterAlunosCodigosComRegistroEmCursosQuery(alunosCodigosInativosEOL, dto.TurmaId)); if (cursosUsuarios != null && cursosUsuarios.Any()) { foreach (var cursoUsuario in cursosUsuarios) { var cursoUsuarioRemover = new CursoUsuarioRemoverDto() { CursoUsuarioId = cursoUsuario.CursoUsuarioId, CursoId = cursoUsuario.CursoId, UsuarioId = cursoUsuario.UsuarioId, UsuarioGsaId = cursoUsuario.UsuarioGsaId, TipoUsuario = (int)UsuarioTipo.Aluno, TipoGsa = (int)UsuarioCursoGsaTipo.Estudante, }; await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaCursoUsuarioRemovidoSync, cursoUsuarioRemover)); } } else { SentrySdk.CaptureMessage($"Não foi possível localizar a relação de cursos x estudantes na base do GSA! TurmaId: {dto.TurmaId} e {String.Join(", ", alunosCodigosInativosEOL)}"); } } return(true); }
private async Task InserirMensagemErroIntegracaoAsync(CursoUsuarioRemoverDto filtro, string mensagem) => await mediator.Send(new IncluirCursoUsuarioRemocaoErroCommand(new CursoUsuarioRemovidoGsaErro(filtro.UsuarioId, filtro.CursoId, mensagem)));
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { var dto = mensagemRabbit.ObterObjetoMensagem <FiltroTurmaRemoverCursoUsuarioDto>(); try { var parametrosCargaInicialDto = await mediator.Send(new ObterParametrosCargaIncialPorAnoQuery(DateTime.Today.Year)); var funcionariosASeremRemovidos = await mediator.Send( new ObterFuncionariosParaRemoverCursoQuery(dto.TurmaId.ToString(), dto.DatasFuncionario.DataInicio, dto.DatasFuncionario.DataFim, parametrosCargaInicialDto)); foreach (var funcionarioASeremRemovido in funcionariosASeremRemovidos) { var funcionarioECurso = await ObterFuncionarioECurso(funcionarioASeremRemovido); if (funcionarioECurso.funcionarioCurso is null || funcionarioECurso.curso is null) { continue; } var cursoFuncionarioRemover = new CursoUsuarioRemoverDto { CursoUsuarioId = funcionarioECurso.funcionarioCurso.CursoUsuarioId, CursoId = funcionarioECurso.curso.Id, TipoUsuario = (int)UsuarioTipo.Funcionario, TipoGsa = (int)UsuarioCursoGsaTipo.Funcionario, UsuarioId = funcionarioECurso.funcionarioCurso.UsuarioId, UsuarioGsaId = funcionarioECurso.funcionarioCurso.UsuarioGsaId.ToString(), }; if (FuncionarioEResponsavelPeloCurso(funcionarioECurso.funcionarioCurso.Email, funcionarioECurso.curso.Email)) { var funcionariosDoCurso = await mediator.Send(new ObterFuncionariosPorCursoQuery(funcionarioECurso.curso.Id)); var novoResponsavel = DefinaNovoResponsavelPeloCurso(funcionariosDoCurso, funcionarioECurso.funcionarioCurso); var donoDoCursoAlterado = await mediator.Send(new AtribuirDonoCursoCommand( funcionarioECurso.curso.TurmaId, funcionarioECurso.curso.ComponenteCurricularId, novoResponsavel.GoogleClassroomId, novoResponsavel.Email)); if (!donoDoCursoAlterado) { await mediator.Send(new PublicaFilaRabbitCommand( RotasRabbit.FilaGsaCursoUsuarioRemovidoFuncionarioTratarErro, dto)); continue; } } await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaCursoUsuarioRemovidoSync, cursoFuncionarioRemover)); } } catch (Exception exception) { SentrySdk.CaptureException(exception); await mediator.Send(new PublicaFilaRabbitCommand( RotasRabbit.FilaGsaCursoUsuarioRemovidoFuncionarioTratarErro, dto)); } return(true); }