public ActionResult Start(int id, string courseTC, int?moduleSetId) { var test = TestService.GetFullTest(id); var groupTest = StudentInGroupService.GetUserGroupTest(id); if (groupTest != null && groupTest.AttemptCount.HasValue) { var count = UserTestService.GetUserTests(groupTest) .Count(x => x.UserId == GetUserId(false)); if (count >= groupTest.AttemptCount.Value) { return(BaseView(new PagePart("Вы использовали все попытки для сдачи теста"))); } } var userTests = GetCurrentTests(); var userTest = userTests.FirstOrDefault(x => x.TestId == id && x.UserId == GetUserId(courseTC != null)); if (userTest == null) { var rule = test.TestPassRule; if (groupTest != null) { rule = groupTest.TestPassRule; } if (moduleSetId.HasValue) { rule = TestModuleSetService.GetValues(moduleSetId.Value, x => x.TestPassRule); } var showAnswers = false; // if (User.GetOrDefault(x => x.Student_ID) > 0) { // var paidCourses = StudentService.GetPaidCourseTCs(User.Student_ID.Value); // showAnswers = test.CourseTCSplitList.Intersect(paidCourses).Any(); // } userTest = SaveUserTest(id, test, rule, courseTC, moduleSetId, showAnswers); } var model = new TestRunVM { Test = test, UserTest = userTest }; if (userTest.IsPrerequisite) { var otherPretests = CoursePrerequisiteService.GetTestIds( courseTC).Skip(1).ToList(); if (otherPretests.Any()) { model.OtherPreTestQuestions = GetQuestions(otherPretests).ToList(); } } if (test.TestIds.Any()) { model.OtherPreTestQuestions = GetQuestions(test.TestIds).ToList(); } return(BaseView(new TestRunView(), model)); }
private string GetTitle(TestRunVM model) { return(model.Test.Name); }