/// <summary> /// 校验年龄段交叉 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-14</para> /// </summary> /// <param name="ageGroups">待校验的年龄段数据</param> /// <param name="courseType">课程类别</param> /// <param name="companyId">公司编号</param> /// <param name="courseId">课程Id 添加时可空,编辑时传入</param> private static void VerifyAgeCross(List <AgeGroup> ageGroups, CourseType courseType, string companyId, long?courseId = null) { if (ageGroups == null || ageGroups.Count == 0) { return; } //必修课所有时间段不允许交叉 //选修课课程级别内时间段不允许 if (courseType == CourseType.Compulsory) { var compulsorys = new TblDatCourseRepository().GetByCourseType(companyId, (int)CourseType.Compulsory, courseId).Result; if (compulsorys.Any()) { var courseIds = compulsorys.Select(x => x.CourseId); var ages = new TblDatCourseLevelMiddleRepository() .GetByCourseId(courseIds) .Result .Select(x => new AgeGroup { MinAge = x.BeginAge, MaxAge = x.EndAge }); ageGroups.AddRange(ages); } } //校验 CrossCalc(ageGroups); }
/// <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); }
/// <summary> /// 获取课程基本信息列表 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-19</para> /// </summary> /// <param name="cType">0:必修课程 1:选修课程 null:所有</param> /// <returns>课程简要信息集合</returns> public List <CourseShortResponse> GetShortList(int?cType) { Expression <Func <TblDatCourse, bool> > where = m => m.IsDisabled == false && m.CompanyId == _companyId; if (cType.HasValue) { where = where.And(m => m.CourseType == cType.Value); } var courses = new TblDatCourseRepository() .GetCoursesAsync() .Result .Where(where.Compile()) .OrderBy(x => x.CourseCode, new NaturalStringComparer()) .ToList(); return(AutoMapper.Mapper.Map <List <CourseShortResponse> >(courses)); }
/// <summary> /// 描述:根据学期获取本学期正式班级里面的课程信息 /// <para>作 者:瞿琦</para> /// <para>创建时间:2018-10-17</para> /// </summary> /// <param name="termId">学期id</param> /// <returns>已通过课程信息列表</returns> public static List <ClassCourseResponse> GetTermClassCourseInfo(long termId) { var termClassList = DefaultClassService.GetClasssByTermId(termId); //所有课程 var courseList = new TblDatCourseRepository().LoadList(x => x.IsDisabled == false); //校区所属课程 var termClassCourseList = (from x1 in courseList join x2 in termClassList on x1.CourseId equals x2.CourseId select new ClassCourseResponse { CourseId = x1.CourseId, ClassCnName = x1.ClassCnName }).ToList(); return(termClassCourseList); }
/// <summary> /// 根据学期Id获取班级代码 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-19</para> /// </summary> /// <param name="termId">学期Id</param> /// <returns>班级信息列表</returns> public static List <ClassInfoListResponse> GetClassInfoListByTermId(long termId) { //班级信息 var classInfoList = new TblDatClassRepository().GetTermIdByClass(termId); //课程信息 var courseInfo = new TblDatCourseRepository().GetCoursesAsync().Result; var classCourseInfo = from a in classInfoList join b in courseInfo on a.CourseId equals b.CourseId select new ClassInfoListResponse() { ClassId = a.ClassId, ClassNo = a.ClassNo, ClassName = b.ClassCnName }; return(classCourseInfo.ToList()); }
/// <summary> /// 描述:根据学期获取审核中班级所属课程 /// <para>作 者:瞿琦</para> /// <para>创建时间:2018-10-17</para> /// </summary> /// <param name="termId">学期id</param> /// <returns>审核中的课程列表</returns> public List <ClassCourseResponse> GetAuditClassCourse(long termId) { var auditCourseList = new List <ClassCourseResponse>(); TermCourseTimetableAuditService termCourseTiemtableService = new TermCourseTimetableAuditService(termId); if (termCourseTiemtableService.IsAuditing) { //所有课程 var courseList = new TblDatCourseRepository().LoadList(x => x.IsDisabled == false); var classList = _tblAutClassRepository.Value.GetByAuditId(termCourseTiemtableService.TblAutAudit.AuditId).Result; auditCourseList = (from x1 in classList join x2 in courseList on x1.CourseId equals x2.CourseId select new ClassCourseResponse { CourseId = x1.CourseId, ClassCnName = x2.ClassCnName }).ToList(); } return(auditCourseList); }