Esempio n. 1
0
        /// <summary>
        /// 获取计划中的课程集合
        /// </summary>
        /// <returns></returns>
        private List <CourseInfo> GetCourses()
        {
            ThrowExceptionIfValidateFailure();

            var tempCourses = new List <CourseInfo>();

            //学习计划中的课程集合
            var planCourses = StudyPlanCourseAccessor.GetCourseList(ID);

            //课程ID集合
            var courseIds = planCourses.Select(p => p.CourseId).ToArray();

            //获取课程信息集合
            var coursesList = CourseAccessor.GetList(courseIds);

            foreach (var course in coursesList)
            {
                var planCourse = planCourses.FirstOrDefault(p => p.CourseId == course.CourseId);

                tempCourses.Add(new CourseInfo
                {
                    CourseId  = course.CourseId,
                    Title     = course.Title,
                    Content   = course.Content,
                    Image     = course.Image,
                    Objective = course.Objective,
                    Remarks   = course.Remarks,
                    Sort      = planCourse.Sort,
                    Status    = course.Status,
                    SubjectId = course.SubjectId
                });
            }

            return(tempCourses);
        }
        /// <summary>
        /// 获取学员及计划
        /// </summary>
        /// <returns></returns>
        private Dictionary <long, List <PlanCoursesModel> > GetStuentPlans()
        {
            Dictionary <long, List <PlanCoursesModel> > dic = new Dictionary <long, List <PlanCoursesModel> >();

            if (state.StudentId.HasValue || state.StudentId > 0)
            {
                //当前学员持有该课程的计划
                var studentPlans = StudyPlanCourseAccessor.GetStudyPlansCoursesFor(state.StudentId.Value, state.CourseId);

                dic.Add(state.StudentId.Value, studentPlans);
            }
            else
            {
                //所有持有该课程的计划
                var plans = StudyPlanCourseAccessor.GetStudyPlansCoursesFor(state.CourseId);

                var planIds = plans.Select(p => p.PlanId).ToArray();

                //啊其他取持有这些计划的学员
                var studentPlanIdsDic = UserStudyPlanAccessor.GetStudentIdsFor(planIds);

                if (studentPlanIdsDic == null)
                {
                    return(null);
                }

                foreach (var item in studentPlanIdsDic)
                {
                    var studentId   = item.Key;
                    var itemPlanIds = item.Value;

                    var itemPlans = plans.Where(p => itemPlanIds.Contains(p.PlanId)).ToList();

                    dic.Add(studentId, itemPlans);
                }
            }

            return(dic);
        }