Esempio n. 1
0
        public async Task <bool> Executar(AtribuirFuncionarioSemRfCursoDto atribuirFuncionarioSemRfCurso)
        {
            var funcionarioGoogle = await ObterFuncionario(atribuirFuncionarioSemRfCurso.Email);

            var curso = await ObterCurso(atribuirFuncionarioSemRfCurso.TurmaId, atribuirFuncionarioSemRfCurso.ComponenteCurricularId);

            if (curso is null)
            {
                throw new NegocioException("Curso ainda não inserido no Google Classroom");
            }

            var existe = await mediator.Send(new ExisteFuncionarioCursoGoogleQuery(funcionarioGoogle.Indice, curso.Id));

            if (existe)
            {
                throw new NegocioException("Curso já associado para o funcionário");
            }

            try
            {
                await InserirFuncionarioCursoGoogleAsync(funcionarioGoogle, curso);

                return(true);
            }
            catch (Exception ex)
            {
                await IncluirCursoDoFuncionarioComErroAsync(atribuirFuncionarioSemRfCurso.Email, atribuirFuncionarioSemRfCurso.TurmaId, atribuirFuncionarioSemRfCurso.ComponenteCurricularId,
                                                            $"ex.: {ex.Message}");

                throw;
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> EnviarRequisicaoAtribuirFuncionarioCursoSemRf([FromBody] AtribuirFuncionarioSemRfCursoDto atribuirFuncionarioSemRfCurso, [FromServices] IEnviarRequisicaoAtribuirFuncionarioSemRfCursoUseCase atribuirFuncionarioSemRfCursoUseCase)
        {
            var retorno = await atribuirFuncionarioSemRfCursoUseCase.Executar(atribuirFuncionarioSemRfCurso);

            return(Ok(retorno));
        }