//GET: Get question\ public ActionResult Question(int questionIndex) { var test = this.ControllerContext.HttpContext.Request.Cookies["testForLevel"].Value; var solvedTest = JsonConvert.DeserializeObject <SolvedAutomaticTest>(test); if (questionIndex >= solvedTest.SolvedQuestions.Count) { return(Json(true, JsonRequestBehavior.AllowGet)); } var clQId = solvedTest.SolvedQuestions.ElementAt(questionIndex).CloseQuestionId; var solvedQuestion = this.closeQuestionService.GetById(clQId); var newQuestion = new SolveCloseQuestionViewModel { Answers = solvedQuestion.Answers.ToList().ConvertAll(x => new CloseAnswer { Content = x.Content, Correct = x.Correct, Id = x.Id, Images = this.cloudinaryService.AddPathToQuestionImageName(x.Images), Question = x.Question, QuestionId = x.QuestionId }), Content = solvedQuestion.Content, QuestionId = solvedQuestion.Id, Index = questionIndex, Images = this.cloudinaryService.AddPathToQuestionImageName(solvedQuestion.Images).ToList(), SolvedQuestionId = solvedQuestion.Id, }; newQuestion.Answers = OtherFunctions.Shuffle <CloseAnswer>(newQuestion.Answers.ToList()).ToList(); var correctAnswers = newQuestion.Answers.Where(x => x.Correct == true).Count(); if (correctAnswers > 1) { newQuestion.IsMultiple = true; newQuestion.MultipleSelected = new List <MultipleAnswer>(); foreach (var item in newQuestion.Answers) { newQuestion.MultipleSelected.Add(new MultipleAnswer { AnswerId = item.Id, IsSelected = false }); } newQuestion.MultipleSelected.ToList(); } return(PartialView(newQuestion)); }
public ActionResult Question(int questionIndex, int solvedTestId) { var solvedTest = this.solvedAutomaticTestService.GetById(solvedTestId); if (questionIndex >= solvedTest.SolvedQuestions.Count) { return(Json(true, JsonRequestBehavior.AllowGet)); } var solvedQuestion = this.solvedCloseQuestionService.GetQuestionByAutoTestAndIndex(solvedTestId, questionIndex); var newQuestion = new SolveCloseQuestionViewModel { Answers = solvedQuestion.CloseQuestion.Answers.ToList().ConvertAll(x => new CloseAnswer { Content = x.Content, Correct = x.Correct, Id = x.Id, Images = this.cloudinaryService.AddPathToQuestionImageName(x.Images), Question = x.Question, QuestionId = x.QuestionId }), Content = solvedQuestion.CloseQuestion.Content, QuestionId = solvedQuestion.CloseQuestion.Id, Index = questionIndex, Images = this.cloudinaryService.AddPathToQuestionImageName(solvedQuestion.CloseQuestion.Images).ToList(), SolvedTestId = solvedTestId, SolvedQuestionId = solvedQuestion.Id, }; newQuestion.Answers = OtherFunctions.Shuffle <CloseAnswer>(newQuestion.Answers.ToList()).ToList(); var correctAnswers = newQuestion.Answers.Where(x => x.Correct == true).Count(); if (correctAnswers > 1) { newQuestion.IsMultiple = true; newQuestion.MultipleSelected = new List <MultipleAnswer>(); foreach (var item in newQuestion.Answers) { newQuestion.MultipleSelected.Add(new MultipleAnswer { AnswerId = item.Id, IsSelected = false }); } newQuestion.MultipleSelected.ToList(); } return(PartialView(newQuestion)); }
public ActionResult SendAnswer(SolveCloseQuestionViewModel question) { if (question.SolvedQuestionId == 0 || question.QuestionId == 0) { return(RedirectToAction("Question", new { questionIndex = question.Index, solvedTestId = question.SolvedTestId })); } var test = this.ControllerContext.HttpContext.Request.Cookies["testForLevel"].Value; var solvedTest = JsonConvert.DeserializeObject <SolvedAutomaticTest>(test); if (question.SelectedAnswer != 0) { var q = solvedTest.SolvedQuestions.Where(x => x.CloseQuestionId == question.SolvedQuestionId).First(); var answer = this.closeAnswerService.GetById(question.SelectedAnswer); q.SelectedAnswers = new List <CloseAnswer> { new CloseAnswer { Content = "", Correct = answer.Correct, Id = answer.Id, Images = answer.Images, QuestionId = answer.QuestionId } }; } else if (question.MultipleSelected != null) { var q = solvedTest.SolvedQuestions.Where(x => x.CloseQuestionId == question.SolvedQuestionId).First(); var answers = new List <CloseAnswer>(); foreach (var item in question.MultipleSelected.Where(x => x.IsSelected == true).Select(x => x.AnswerId)) { var newAnswer = this.closeAnswerService.GetById(item); answers.Add(new CloseAnswer { Content = "", Correct = newAnswer.Correct, Id = newAnswer.Id, Images = newAnswer.Images, QuestionId = newAnswer.QuestionId }); } q.SelectedAnswers = answers; } HttpCookie cookie = new HttpCookie("testForLevel"); cookie.Value = JsonConvert.SerializeObject(solvedTest); this.ControllerContext.HttpContext.Response.Cookies.Remove("testForLevel"); this.ControllerContext.HttpContext.Response.Cookies.Add(cookie); return(RedirectToAction("Question", new { questionIndex = question.Index + 1 })); }
public ActionResult SendAnswer(SolveCloseQuestionViewModel question) { if (question.SolvedTestId == 0 || question.SolvedQuestionId == 0 || question.QuestionId == 0) { return(RedirectToAction("Question", new { questionIndex = question.Index, solvedTestId = question.SolvedTestId })); } if (question.SelectedAnswer != 0) { this.solvedCloseQuestionService.AddSelectedAnswer(new List <int> { question.SelectedAnswer }, question.SolvedQuestionId); } else if (question.MultipleSelected != null) { this.solvedCloseQuestionService.AddSelectedAnswer(question.MultipleSelected.Where(x => x.IsSelected == true) .Select(x => x.AnswerId).ToList() , question.SolvedQuestionId); } return(RedirectToAction("Question", new { questionIndex = question.Index + 1, solvedTestId = question.SolvedTestId })); }