Пример #1
0
        public Task <GradeDTO> Handle(NovaGradeCommand request, CancellationToken cancellationToken)
        {
            var grade = request.Grade;

            var gradeBanco = gradeRepository.GetById(grade.CodGrade);

            if (gradeBanco != null)
            {
                throw new ValidacaoException($"Já existe uma cadastrada com o codGrade {grade.CodGrade}!");
            }

            var professor = professorRepository.GetByCodFuncionarioIncludeUsuario(grade.CodFuncionario);

            if (professor == null)
            {
                throw new NaoEncontradoException("Professor não encontrado através do codFuncionario informado!");
            }

            grade.Cpf            = professor.Cpf;
            grade.CodFuncionario = professor.CodFuncionario;

            grade = gradeRepository.Add(grade);

            GradeDTO gradeDTO = new GradeDTO()
            {
                CodGrade       = grade.CodGrade,
                Turma          = grade.Turma,
                Disciplina     = grade.Disciplina,
                Curso          = grade.Curso,
                CodFuncionario = grade.CodFuncionario
            };

            return(Task.FromResult(gradeDTO));
        }