Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }