Exemple #1
0
        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);
        }