Ejemplo n.º 1
0
        public async Task <bool> Executar(AtribuirAlunoCursoDto atribuirAlunoCurso)
        {
            var alunoCursoEol = new AlunoCursoEol(atribuirAlunoCurso.CodigoAluno, atribuirAlunoCurso.TurmaId, atribuirAlunoCurso.ComponenteCurricularId);

            var publicarAlunoCurso = await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaAlunoCursoIncluir, RotasRabbit.FilaAlunoCursoIncluir, alunoCursoEol));

            if (!publicarAlunoCurso)
            {
                throw new NegocioException("Não foi possível realizar a requisição para atribuir o aluno ao curso.");
            }

            return(publicarAlunoCurso);
        }
        public async Task <bool> Executar(long?turmaId, long?componenteCurricularId)
        {
            FiltroObterCursosCadastradosDto filtro = new FiltroObterCursosCadastradosDto
            {
                TurmaId = turmaId,
                ComponenteCurricularId = componenteCurricularId,
                PaginaNumero           = 1,
                RegistrosQuantidade    = 500000
            };

            var cursosCadastrados = await obterCursosCadastradosUseCase.Executar(filtro);

            foreach (var cursoGoogle in cursosCadastrados.Items)
            {
                try
                {
                    var alunosCurso = await obterCursosAlunosParaIncluirGoogleUseCase.Executar(cursoGoogle.TurmaId, cursoGoogle.ComponenteCurricularId);

                    foreach (var aluno in alunosCurso)
                    {
                        var alunoDto = new AtribuirAlunoCursoDto
                        {
                            CodigoAluno            = aluno.CodigoAluno,
                            TurmaId                = aluno.TurmaId,
                            ComponenteCurricularId = aluno.ComponenteCurricularId
                        };
                        await enviarRequisicaoAtribuirAlunoCursoUseCase.Executar(alunoDto);
                    }
                }
                catch (Exception ex)
                {
                    throw new ArgumentException($"Erro ao enviar a atualização de alunos do curso: [ID:{cursoGoogle.Id}] - Nome:{cursoGoogle.Nome} -- Erro:{ex.Message} -- {ex.StackTrace}.");
                }
            }

            return(true);
        }
        public async Task <IActionResult> EnviarRequisicaoAtribuirAlunoCurso([FromBody] AtribuirAlunoCursoDto atribuirAlunoCurso, [FromServices] IEnviarRequisicaoAtribuirAlunoCursoUseCase atribuirAlunoCursoUseCase)
        {
            var retorno = await atribuirAlunoCursoUseCase.Executar(atribuirAlunoCurso);

            return(Ok(retorno));
        }