Пример #1
0
 public ActionResult Do(int id)
 {
     var test = testService.GetTest(id);
     var viewModel = new TestDoViewModel
     {
         Name = test.Name,
         Id = test.Id,
         Questions = test.Questions.ToList(),
     };
     return View(viewModel);
 }
Пример #2
0
 public ActionResult Do(TestDoViewModel viewModel)
 {
     Dictionary<int, int> givenAnswers = new Dictionary<int, int>();
     List<Question> wrongQuestions = new List<Question>();
     int questionNumber = 0;
     int result = 0;
     int maxResult = 0;
     var questions = testService.GetQuestionsByTestId(viewModel.Id);
     var test = testService.GetTest(viewModel.Id);
     foreach (var questionId in viewModel.QuestionIds)
     {
         var question = questions.Where(x => x.Id == questionId).First();
         var answer = viewModel.Answers[questionNumber];
         if (answer == question.Answer)
         {
             result += question.Value;
         }
         else
         {
             givenAnswers[questionId] = answer;
             wrongQuestions.Add(question);
         }
         maxResult += question.Value;
         questionNumber++;
     }
     var returnViewModel = new TestShowResultViewModel
     {
         GivenAnswers = givenAnswers,
         Name = viewModel.Name,
         TotalScore = maxResult,
         Value = result,
         WrongQuestions = wrongQuestions,
         ShowTrueAnswers = test.ShowTrueAnswers,
     };
     testResultService.Create(new TestResult
     {
         TestId = viewModel.Id,
         TotalScore = maxResult,
         UserId = ((int)Membership.GetUser().ProviderUserKey),
         Value = result,
     });
     return View("ShowResult", returnViewModel);
 }