コード例 #1
0
ファイル: TestRunController.cs プロジェクト: dKluev/Site
        public ActionResult Result(int userTestId)
        {
            UserTestService
            .LoadWith(c => c.Load(x => x.Test, x => x.TestPassRule));
            var userTest = UserTestService.GetByPK(userTestId);

            if (userTest == null)
            {
                return(null);
            }
            var isEnglishTest = TestRecomendations.IsEnglishTest(userTest.TestId);
            var courseTCs     = RecomendCourseTCs(userTest);

            var courseTC = userTest.Test.CourseTCSplitList.FirstOrDefault();
            var isTrack  = !courseTC.IsEmpty() && CourseService.IsTrack(courseTC);


            var courses    = CourseService.GetCourseLinkList(courseTCs).ToList();
            var modules    = TestModuleService.GetForTest(userTest.TestId).ToList();
            var courseName = DictionaryUtils.GetValueNotDefaultKey(
                CourseService.GetAllActiveCourseNames(), userTest.Course_TC);
            var model = new TestResultVM {
                UserTest        = userTest,
                RecCourses      = courses,
                IsOwned         = User != null && User.UserID == userTest.UserId,
                IsPrivatePerson = User != null && !User.IsCompany,
                Modules         = modules,
                IsTrack         = isTrack,
                Stats           = EntityUtils.GetStats(userTest),
                IsEnglish       = isEnglishTest,
                CourseName      = courseName
            };

            return(BaseView(new PagePart(PartialViewNames.Result, model)));
        }
コード例 #2
0
ファイル: TestRunController.cs プロジェクト: dKluev/Site
        private List <string> RecomendCourseTCs(UserTest userTest)
        {
            var courseTCs     = new List <string>();
            var isEnglishTest = TestRecomendations.IsEnglishTest(userTest.TestId);

            if (userTest.IsPrerequisite && !isEnglishTest)
            {
                if (userTest.IsPass)
                {
                    courseTCs.Add(userTest.Course_TC);
                }
                else
                {
                    courseTCs.AddRange(
                        EntityUtils.GetCoursePreCourses(CoursePrerequisiteService, userTest.Course_TC).Select(x => x.RequiredCourse_TC));
                }
            }
            else
            {
                var recomendations = TestRecomendations.Tests.GetValueOrDefault(userTest.TestId);
                if (recomendations == null)
                {
                    courseTCs = SiteObjectRelationService.GetRelation(typeof(Test),
                                                                      _.List <object>(userTest.TestId), typeof(Course)).Select(x => x.RelationObject_ID)
                                .Cast <string>().ToList();
                    if (courseTCs.Any() && userTest.IsPass)
                    {
                        var parentCourseTCs = CourseService.GetAll(x => courseTCs.Contains(x.Course_TC))
                                              .Select(x => x.ParentCourse_TC).ToList();
                        courseTCs = CourseService.GetNextCourseTCs(parentCourseTCs);
                    }
                }
                else
                {
                    courseTCs =
                        recomendations.First(x => x.Key <= userTest.RightCount.GetValueOrDefault()).Value;
                }
            }
            return(courseTCs);
        }