Ejemplo n.º 1
0
        public async Task <ActionResult <long> > AssessTextAnswer(AssessTextAnswerModel assessModel)
        {
            var answersUnit = await _quizRepository.GetAnswersUnitByIdAsync(assessModel.AnswerUnitId);

            var quiz = await _quizRepository.GetByIdAsync(answersUnit.PollBaseId);

            if (!SenderPermissions.Contains("CanAssessAnyAnswer"))
            {
                if (quiz.CreatorUserId != SenderObjectId)
                {
                    return(StatusCode(StatusCodes.Status403Forbidden, "Only creator or admin can assess answers"));
                }
            }

            var result = new AssessTextAnswerModelValidatorFromData(answersUnit, quiz).Validate(assessModel);

            result.AddToModelState(ModelState, null);
            if (!result.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(await _quizRepository.AssessTextAnswerAsync(assessModel)));
        }