public ActionResult TestFinish() { if (TestSession != null) { var result = TestSession.GetResult(); var percentageResult = TestSession.GetPercentageResult(); var concreteTest = new ExamConcreteTest(); concreteTest.TestID = ActiveTest.ExamTestID; concreteTest.UserID = UserId; concreteTest.StartTime = (DateTime) Session["StartTime"]; concreteTest.EndTime = DateTime.Now; concreteTest.Result = percentageResult; JournalContext.ExamConcreteTests.InsertOnSubmit(concreteTest); //JournalContext.SubmitChanges(); foreach (var questionState in result) { var qa = new ExamQuestionAnswer(); qa.ExamConcreteTest = concreteTest; qa.QuestionID = questionState.Key.QuestionID; qa.UserAnswer = questionState.Value.GetAnswers().Aggregate((a, b) => a + ' ' + b); JournalContext.ExamQuestionAnswers.InsertOnSubmit(qa); } JournalContext.SubmitChanges(); TestSession = null; return View(concreteTest); } return RedirectToAction("Index"); }
public ActionResult RunTest(int testId) { Session["StartTime"] = DateTime.Now; var test = JournalContext.ExamTests.FirstOrDefault(x => x.ExamTestID == testId); ActiveTest = JournalContext.ExamTests.FirstOrDefault(t => t.ExamTestID == testId); TestSession = TestHelper.CreateSession(test); if (TestSession.QuestionsCount == 0) return RedirectToAction("Index"); return RedirectToAction("ProcessQuestion", new { testNumber = 0 }); }