public async Task <ActionResult <Dictionary <int, int> > > GetPollQuestionAnswersPlotInfo(string questionId) { var poll = await _pollRepository.GetPollBaseByQuestionIdAsync(questionId); if (!SenderPermissions.Contains("CanViewAnyPollStats")) { if ((bool)!poll.AreStatsPublic && SenderObjectId != poll.CreatorUserId) { return(BadRequest("Stats is private")); } } return(Ok(await _pollRepository.GetPollQuestionAnswersPlotInfoAsync(questionId))); }
public async Task <ActionResult <IEnumerable <IGrouping <string, BriefQuizAnswerResponse> > > > GetQuizAnswers(string quizId) { var quiz = await _quizRepository.GetByIdAsync(quizId); if (!SenderPermissions.Contains("CanViewAnyAnswer")) { if ((bool)!quiz.AreStatsPublic && SenderObjectId != quiz.CreatorUserId) { return(BadRequest("Stats is private")); } } return(Ok(await _quizRepository.GetQuizAnswersAsync(quizId))); }
public async Task <ActionResult <List <IGrouping <string, PollRepository.PollAnswerResponse> > > > GetPollQuestionAnswers(string questionId) { var poll = await _pollRepository.GetPollBaseByQuestionIdAsync(questionId); if (!SenderPermissions.Contains("CanViewAnyAnswer")) { if ((bool)!poll.AreStatsPublic && SenderObjectId != poll.CreatorUserId) { return(BadRequest("Stats is private")); } } if ((bool)poll.AreAnswersAnonymous) { return(BadRequest("Answers are anonymous")); } return(Ok(await _pollRepository.GetPollQuestionAnswersAsync(questionId))); }
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))); }