public void AtribuirPontosParaResposta(AtribuirNotaRequest request, Usuario usuarioLogado)
        {
            Resposta resposta = _respostaRepository.GetById(request.IdResposta);

            if (resposta == null)
            {
                throw new Exception("Resposta não encontrada.");
            }

            int idCase = (from r in _respostaRepository.Queryable()
                          join e in _entregaDeLicaoRepository.Queryable() on r.IdEntregaDeLicao equals e.Id
                          join l in _licaoRepository.Queryable() on e.IdLicao equals l.Id
                          where r.Id == request.IdResposta
                          select l.IdCase).FirstOrDefault();

            CaseDeNegocio caseDeNegocio = _caseDeNegocioService.ObterPorId(idCase);

            if (!_caseDeNegocioService.UsuarioEstaAssociadoAoCaseDeNegocioComoProfessor(usuarioLogado, caseDeNegocio))
            {
                throw new Exception("Usuário não possui permissão para atribuir notas.");
            }

            resposta.PontosGanhos = request.Pontos;

            _respostaRepository.Update(resposta);
        }
예제 #2
0
 public IActionResult AtribuirNota([FromBody] AtribuirNotaRequest request)
 {
     try
     {
         _avaliacaoService.AtribuirPontosParaResposta(request, _usuarioLogado.Obter());
         return(NoContent());
     }
     catch
     {
         return(BadRequest());
     }
 }