Esempio n. 1
0
        public async Task <int> ExcluirPublicacaoAsync(int professorId, int id)
        {
            var publicacao = await _publicacaoRepository.ObterAsync(id);

            if (publicacao == null)
            {
                throw new DomainException("A publicação não foi encontrada!");
            }

            if (publicacao.Avaliacao.ProfessorId != professorId)
            {
                throw new DomainException("A avaliação informada não pertence ao professor logado!");
            }

            if (publicacao.Avaliacao.Provas?.Count > 0)
            {
                throw new DomainException("Não é permitido excluir uma publicação quando a prova já foi feita por algum aluno!");
            }

            _publicacaoRepository.Excluir(id);

            _publicacaoRepository.SaveChanges();

            return(publicacao.Id);
        }