public QuizQuestion MapQuestionToQuiz(int NewQuizId, QuestionHasAnswers NewQuestionWithAnswers)
        {
            List <AnswerOption> _questionAnswers = new List <AnswerOption>();

            QuizQuestion _quizQuestion = new QuizQuestion();

            _quizQuestion.Question = NewQuestionWithAnswers.Question;
            _quizQuestion.IsActive = true;
            _quizQuestion.QuizId   = NewQuizId;

            QuizQuestion _createdQuestion = _questionService.CreateNewQuestion(_quizQuestion);

            foreach (AnswerWithIsCorrect answer in NewQuestionWithAnswers.Answers)
            {
                _questionAnswers.Add(MapAnswersToQuestion(_createdQuestion.Id, answer));
            }

            return(_createdQuestion);
        }
        public IEnumerable <QuizQuestion> UpdateQuiz(int QuizId, int UserId, QuestionHasAnswers NewQuestionWithAnswers, int?QuestionId)
        {
            int accessLevel = _userService.GetUserAccessByUserId(UserId).AccessLevelId;

            if (!accessLevel.Equals((int)UserAccessEnum.Admin))
            {
                return(null);
            }

            if (QuestionId != null)
            {
                QuizQuestion _quizQuestion = _questionService.GetQuestionById(QuestionId.Value);

                if (NewQuestionWithAnswers.Question != _quizQuestion.Question)
                {
                    QuizQuestion _setQuestionInactive = _questionService.SetQuestionActiveState(QuestionId.Value, false);
                    QuizQuestion _newQuestion         = MapQuestionToQuiz(QuizId, NewQuestionWithAnswers);
                }
                else
                {
                    _answerOptionService.DeleteAnswersForQuestion(QuestionId.Value);

                    NewQuestionWithAnswers.Answers.ForEach(answer =>
                    {
                        MapAnswersToQuestion(QuestionId.Value, answer);
                    });
                }
            }
            else
            {
                QuizQuestion _newQuestion = MapQuestionToQuiz(QuizId, NewQuestionWithAnswers);
            }


            return(GetQuizQuestionsByQuizId(QuizId));
        }
示例#3
0
        public IEnumerable <QuizQuestion> Put(int QuizId, int UserId, [FromBody] QuestionHasAnswers NewQuestionWithAnswers)
        {
            IEnumerable <QuizQuestion> _updatedQuizQuestion = _quizService.UpdateQuiz(QuizId, UserId, NewQuestionWithAnswers, NewQuestionWithAnswers.QuestionId);

            return(_updatedQuizQuestion);
        }