public async Task <Quiz> IsQuizAdded(CreateQuizDTO createQuiz) { _quizes = database.GetCollection <Quiz>(createQuiz.classID + "_quizes"); _quizQuestions = database.GetCollection <QuizQuestion>(createQuiz.classID + "_quizQuestions"); Quiz quiz = new Quiz(); QuizQuestion questionsToAdd = new QuizQuestion(); quiz.name = createQuiz.name; quiz.classID = createQuiz.classID; quiz.subjectID = createQuiz.subjectID; quiz.CreateDate = DateTime.Now; quiz.StartDate = createQuiz.StartDate; quiz.FinishDate = createQuiz.FinishDate; quiz.amountOfQuestions = createQuiz.questions.Count; quiz.status = "ACTIVE"; await _quizes.InsertOneAsync(quiz); questionsToAdd.QuizId = quiz.Id; questionsToAdd.Questions.AddRange(createQuiz.questions); await _quizQuestions.InsertOneAsync(questionsToAdd); return(quiz); }
public async Task <IActionResult> CreateQuiz(CreateQuizDTO createQuiz) { string token = HttpContext.Request.Headers["Authorization"]; token = token.Replace("Bearer ", string.Empty); var id = _tokenHelper.GetIdByToken(token); var subject = await _apiHelper.ReturnSubjectBySubjectID(createQuiz.classID, createQuiz.subjectID); if (subject == null) { error.Err = "Nie znaleziono przedmiotu w klasie o podanym ID."; error.Desc = "Wprowadź poprawne wartości ID dla klasy i przedmiotu."; return(NotFound(error)); } if (subject.teacherID != id) { error.Err = "Nie jesteś nauczycielem tego przedmiotu."; error.Desc = "Nie możesz dodać quizu."; return(NotFound(error)); } if (DateTime.Compare(createQuiz.FinishDate, DateTime.Now) < 0) { error.Err = "Data końcowa jest wcześniejsza jak obecna."; error.Desc = "Nie możesz dodać quizu."; return(NotFound(error)); } var isQuizAdded = await _apiHelper.IsQuizAdded(createQuiz); return(Ok(isQuizAdded)); }
public async Task <ActionResult> PostQuiz(CreateQuizDTO quiz) { var domainQuiz = new Domain.App.Quiz() { Title = quiz.Title }; await _context.Quizzes.AddAsync(domainQuiz); await _context.SaveChangesAsync(); return(Ok(domainQuiz.Id)); }