public async Task <IActionResult> AddQuiz([FromBody] AddQuizRequest request)
        {
            if (!TryValidateModel(request, nameof(request)))
            {
                return(BadRequest("Invalid form data"));
            }

            var questions = request.Elements.Select(it => it.Question).ToHashSet();

            if (questions.Count() != request.Elements.Count())
            {
                return(BadRequest("All questions must be different"));
            }
            foreach (var addQuizRequestElement in request.Elements)
            {
                if (addQuizRequestElement.Answers.Contains(addQuizRequestElement.CorrectAnswer) == false)
                {
                    return(BadRequest("Correct answer is not found in the available answers"));
                }
            }

            var model = new Quiz()
            {
                Id       = Guid.NewGuid(),
                Elements = request.Elements.Select(it => new QuizElement(Guid.NewGuid(), it.Question, it.Answers, it.CorrectAnswer))
            };

            await _repo.AddQuiz(model, request.LessonId);

            return(Ok());
        }
Beispiel #2
0
 public void AddQuiz(AddQuizRequest request)
 {
     quizRepo.AddQuiz(new Quiz
     {
         Name        = request.Name,
         Description = request.Description
     });
 }
 public override Task <AddQuizReply> AddQuiz(AddQuizRequest request, ServerCallContext context)
 {
     _quizEngine.AddQuiz(request.Quiz);
     return(Task.FromResult(new AddQuizReply()));
 }
Beispiel #4
0
 public ActionResult AddQuiz([FromForm] AddQuizRequest request)
 {
     quizService.AddQuiz(request);
     return(Ok());
 }