예제 #1
0
        /// <summary>
        /// 获取课程列表
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2018-09-14</para>
        /// </summary>
        /// <param name="courseType">null=所有 1=必修课 2=选修课</param>
        /// <returns>课程列表数据</returns>
        public List <CourseListResponse> GetList(int?courseType)
        {
            var courses = _courseRepository.Value.GetByCourseType(_companyId, courseType, null, null).Result;

            if (!courses.Any())
            {
                return(new List <CourseListResponse>());
            }

            var courseIds = courses.Select(m => m.CourseId);

            List <CourseListResponse> res = AutoMapper.Mapper.Map <List <CourseListResponse> >(courses);

            var courseLv = new ViewCourseLevelMiddleRepository().Get(courseIds).Result;

            res.ForEach(x =>
            {
                x.CourseLevels = courseLv
                                 .Where(m => m.CourseId == x.CourseId)
                                 .OrderBy(m => m.LevelCode)
                                 .Select(m => new CourseListLevelResponse
                {
                    CourseLevelId   = m.CourseLevelId,
                    CourseLevelName = m.LevelCnName,
                    SAge            = m.BeginAge,
                    EAge            = m.EndAge,
                    Duration        = m.Duration
                })
                                 .ToList();
            });

            return(res.OrderBy(m => m.IsDisabled).ThenBy(m => m.CourseCode, new NaturalStringComparer()).ToList());
        }
        /// <summary>
        /// 获取班级课程
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2018-09-20</para>
        /// </summary>
        /// <param name="classRoomId">教室Id</param>
        /// <returns>校区课程列表</returns>
        public List <SchoolCourseDto> GetRoomCourses(long classRoomId)
        {
            List <SchoolCourseDto> res = new List <SchoolCourseDto>();

            //班级课程
            var roomCourse = _viewRoomCourseRepository.Value
                             .Get(_schoolId)
                             .Where(x => x.ClassRoomId == classRoomId)
                             .ToList();

            if (!roomCourse.Any())
            {
                return(res);
            }

            var courseIds = roomCourse.Select(x => x.CourseId).Distinct().ToList();

            //课程基本信息
            var courses = new TblDatCourseRepository().GetCoursesAsync(courseIds).Result;

            //课程等级
            var courseLv = new ViewCourseLevelMiddleRepository().Get(courseIds).Result;

            foreach (var room in roomCourse)
            {
                var course  = courses.FirstOrDefault(x => x.CourseId == room.CourseId);
                var sCourse = new SchoolCourseDto
                {
                    ClassCnName  = course.ClassCnName,
                    CourseId     = course.CourseId,
                    ClassEnName  = course.ClassEnName,
                    CourseCnName = course.CourseCnName,
                    CourseCode   = course.CourseCode,
                    CourseEnName = course.CourseEnName,
                    CourseType   = course.CourseType,
                    IsDisabled   = course.IsDisabled,
                    ShortName    = course.ShortName,
                    CourseLevel  = courseLv.Where(c => course.CourseId == c.CourseId).Select(c => new CourseLevelDto
                    {
                        CourseLevelId = c.CourseLevelId,
                        IsDisabled    = c.IsDisabled,
                        LevelCnName   = c.LevelCnName,
                        LevelCode     = c.LevelCode,
                        LevelEnName   = c.LevelEnName
                    }).ToList()
                };
                res.Add(sCourse);
            }

            return(res);
        }