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 })); }
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)); }
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); } }
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); } }
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); } }