예제 #1
0
        //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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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 }));
        }
예제 #4
0
 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 }));
 }