Exemplo n.º 1
0
        public ActionResult CreateQuestion(QuizQuestionModel model)
        {
            var numberOfAnswers = model.Answers.Where(a => !String.IsNullOrWhiteSpace(a.Text)).Count();

            if (numberOfAnswers < 2)
            {
                ModelState.AddModelError("", "Question requires two or more answers");
            }

            if (model.SelectedAnswer + 1 > numberOfAnswers)
            {
                ModelState.AddModelError("", "The selected answer does not have a corresponding answer");
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // Set the correct answer
            model.Answers[model.SelectedAnswer].IsCorrect = true;
            model.SelectedAnswer = 0;

            var answers = new List <QuizAnswer>();

            foreach (var answer in model.Answers)
            {
                if (!String.IsNullOrWhiteSpace(answer.Text))
                {
                    var item = new QuizAnswer
                    {
                        IsCorrect = answer.IsCorrect,
                        Text      = answer.Text
                    };
                    answers.Add(item);
                }
            }

            var questionId = _quizService.CreateQuestion(model.QuizId, model.Question, model.Points, answers);

            for (int i = 0; i < answers.Count; i++)
            {
                //activity log
                _studentActivityService.InsertActivity("Quiz.Create.Question.Answer", "ActivityLog.Quiz.Create.Question.Answer");
            }

            //activity log
            _studentActivityService.InsertActivity("Quiz.Create.Question", "ActivityLog.Quiz.Create.Question");

            return(RedirectToAction("Edit", new { id = model.QuizId }));
        }
Exemplo n.º 2
0
        public ActionResult CreateQuestion(int id)
        {
            var model = new QuizQuestionModel
            {
                QuizId  = id,
                Answers = new List <QuizAnswerModel>()
            };

            for (var i = 0; i <= 3; i++)
            {
                model.Answers.Add(new QuizAnswerModel());
            }

            return(View(model));
        }
Exemplo n.º 3
0
        private void PrepareQuizResultModel(QuizResultModel model, QuizResult quizResult)
        {
            if (quizResult == null)
            {
                throw new ArgumentNullException("quizResult");
            }

            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            model.QuizId       = quizResult.QuizId;
            model.SystemName   = quizResult.Quiz.SystemName;
            model.StudentScore = quizResult.Score;
            model.PassMark     = quizResult.Quiz.PassMark;
            model.IsSystemQuiz = quizResult.Quiz.IsSystemQuiz;
            model.IsLevelQuiz  = quizResult.Quiz.IsLevelQuiz;
            model.Questions    = new List <QuizQuestionModel>();

            foreach (var question in quizResult.Quiz.QuizQuestions.OrderBy(q => q.Id))
            {
                var quizQuestion = new QuizQuestionModel();

                quizQuestion.Question = question.Question;
                quizQuestion.Image    = question.Image;
                quizQuestion.Hint     = question.Hint;

                quizQuestion.Answers = new List <QuizAnswerModel>();
                foreach (var answer in question.QuizAnswers)
                {
                    var quizAnswer = new QuizAnswerModel();

                    quizAnswer.Id         = answer.Id;
                    quizAnswer.QuestionId = answer.QuestionId;
                    quizAnswer.Text       = answer.Text;
                    quizAnswer.IsCorrect  = answer.IsCorrect;

                    quizQuestion.Answers.Add(quizAnswer);
                }
                quizQuestion.SelectedAnswer =
                    quizResult.Answers.Where(a => a.QuestionId == question.Id).Select(q => q.AnswerId).FirstOrDefault();

                model.Questions.Add(quizQuestion);
            }
        }
Exemplo n.º 4
0
        public ActionResult AddQuestion(QuizQuestionModel quizQuestionModel)
        {
            try
            {
                int id = _quizQuestionRepository.AddQuestion(quizQuestionModel);

                if (id != 0 || id != -1)
                {
                    ViewBag.message = "Success..!";
                }
                else
                {
                    ViewBag.message = "Error Creating Question";
                }


                return(View());
            }
            catch (Exception)
            {
                return(View());
            }
        }
        public int AddQuestion(QuizQuestionModel _quizQueModel)
        {
            try
            {
                using (var context = new MCQ_Quiz_DBEntities())
                {
                    /// first add question
                    tblQuizQuestion question = new tblQuizQuestion();
                    question.QuizId_fk = _quizQueModel.QuizId_fk;
                    question.Question  = _quizQueModel.Question;
                    question.Type      = _quizQueModel.Type;
                    question.CreatedOn = _quizQueModel.CreatedOn;
                    question.IsActive  = _quizQueModel.IsActive;
                    question.CreatedBy = _quizQueModel.CreatedBy;

                    context.tblQuizQuestions.Add(question);
                    context.SaveChanges();


                    /// second add options

                    //1
                    tblQuizChoice choice1 = new tblQuizChoice();
                    choice1.QuestionId  = question.QuizQuestionId;
                    choice1.OptionTitle = _quizQueModel.option1;
                    choice1.CreatedON   = _quizQueModel.CreatedOn;
                    choice1.CreatedBy   = _quizQueModel.CreatedBy;
                    choice1.IsAnswer    = false;
                    if (_quizQueModel.option1 == _quizQueModel.Answer)
                    {
                        choice1.IsAnswer = true;
                    }
                    context.tblQuizChoices.Add(choice1);
                    context.SaveChanges();

                    //2
                    tblQuizChoice choice2 = new tblQuizChoice();
                    choice2.QuestionId  = question.QuizQuestionId;
                    choice2.OptionTitle = _quizQueModel.option2;
                    choice2.CreatedON   = _quizQueModel.CreatedOn;
                    choice2.CreatedBy   = _quizQueModel.CreatedBy;
                    choice2.IsAnswer    = false;
                    if (_quizQueModel.option2 == _quizQueModel.Answer)
                    {
                        choice2.IsAnswer = true;
                    }

                    context.tblQuizChoices.Add(choice2);
                    context.SaveChanges();

                    //3
                    tblQuizChoice choice3 = new tblQuizChoice();
                    choice3.QuestionId  = question.QuizQuestionId;
                    choice3.OptionTitle = _quizQueModel.option3;
                    choice3.CreatedON   = _quizQueModel.CreatedOn;
                    choice3.CreatedBy   = _quizQueModel.CreatedBy;
                    choice3.IsAnswer    = false;
                    if (_quizQueModel.option3 == _quizQueModel.Answer)
                    {
                        choice3.IsAnswer = true;
                    }

                    context.tblQuizChoices.Add(choice3);
                    context.SaveChanges();

                    //4
                    tblQuizChoice choice4 = new tblQuizChoice();
                    choice4.QuestionId  = question.QuizQuestionId;
                    choice4.OptionTitle = _quizQueModel.option4;
                    choice4.CreatedON   = _quizQueModel.CreatedOn;
                    choice4.CreatedBy   = _quizQueModel.CreatedBy;
                    choice4.IsAnswer    = false;
                    if (_quizQueModel.option4 == _quizQueModel.Answer)
                    {
                        choice4.IsAnswer = true;
                    }
                    context.tblQuizChoices.Add(choice4);
                    context.SaveChanges();
                    return(choice4.Quiz_Choice_Id);
                }
            }
            catch (Exception)
            {
                return(-1);
            }
        }
Exemplo n.º 6
0
        private void PrepareQuizModel(QuizModel model, Quiz quiz)
        {
            if (quiz == null)
            {
                throw new ArgumentNullException("quiz");
            }

            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            model.Id                     = quiz.Id;
            model.QuizGuid               = quiz.QuizGuid;
            model.IsSystemQuiz           = quiz.IsSystemQuiz;
            model.SystemName             = quiz.SystemName;
            model.IsLevelQuiz            = quiz.IsLevelQuiz;
            model.IsStudentQuiz          = quiz.IsStudentQuiz;
            model.PassMark               = quiz.PassMark;
            model.AchivementSystemName   = quiz.AchivementSystemName;
            model.Name                   = quiz.Name;
            model.Description            = quiz.Description;
            model.Questions              = new List <QuizQuestionModel>();
            model.NumberOfTimesQuizTaken = _quizService.GetNumberOfTimesQuizTaken(quiz.Id);
            model.NumberOfQuizComments   = _quizService.GetNumberOfQuizComments(quiz.Id);
            model.CreatedBy              = quiz.CreatedBy.Username;
            model.HasTakenQuiz           = _quizService.HasTakenQuiz(quiz.SystemName, User.Identity.Name);

            if (model.HasTakenQuiz)
            {
                model.StudentScore = _quizResultService.GetQuizResult(User.Identity.Name, quiz.Id);
            }

            // Questions
            foreach (var question in quiz.QuizQuestions)
            {
                // Answers
                var answers = new List <QuizAnswerModel>();
                foreach (var answer in question.QuizAnswers)
                {
                    var answerModel = new QuizAnswerModel
                    {
                        Id        = answer.Id,
                        Text      = answer.Text,
                        IsCorrect = answer.IsCorrect
                    };
                    answers.Add(answerModel);
                }

                var questionModel = new QuizQuestionModel
                {
                    Id       = question.Id,
                    Question = question.Question,
                    Answers  = answers,
                    Points   = question.Points,
                    Image    = question.Image,
                    Hint     = question.Hint
                };
                model.Questions.Add(questionModel);
            }
        }