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()); }
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())); }
public ActionResult AddQuiz([FromForm] AddQuizRequest request) { quizService.AddQuiz(request); return(Ok()); }