コード例 #1
0
ファイル: TestRunController.cs プロジェクト: dKluev/Site
        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));
        }
コード例 #2
0
ファイル: TitleCreator.cs プロジェクト: dKluev/Site
 private string GetTitle(TestRunVM model)
 {
     return(model.Test.Name);
 }