Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }