/// <summary>
        /// 描述:根据学期获取老师及所属课程
        /// <para>作    者:瞿琦</para>
        /// <para>创建时间:2018.9.25</para>
        /// </summary>
        /// <returns>学期下老师及所属课程列表</returns>

        public List <ClassCourseSearchTeacherResponse> GetTermIdByTeacherList(long termId)
        {
            TblDatClassRepository tblDatClassService = new TblDatClassRepository();

            //获取所有的老师
            var teacherList = TeachService.GetTeachers();
            TermCourseTimetableAuditService auditService = new TermCourseTimetableAuditService(termId);

            //var termTeacherIdList = new List<string>();
            var termTeacherIdList = new List <CourseInfo>();
            var courseList        = new List <CourseInfo>();

            if (auditService.NoPass) //审核中
            {
                //根据学期Id查询审核中的班级信息
                TblAutClassRepository tblAutClassRepository = new TblAutClassRepository();
                var auditId = auditService.TblAutAudit.AuditId;  //获取审核中数据的审核Id
                courseList = tblAutClassRepository.GetByAuditId(auditId).Result.Select(x => new CourseInfo
                {
                    TeacherId = x.TeacherId,
                    CourseId  = x.CourseId
                }).ToList();
                termTeacherIdList = courseList.Distinct(new TeacherComparer()).ToList();
            }
            else  //已生效
            {
                //根据学期Id查询已生效的班级信息
                courseList = tblDatClassService.GetTermIdByClass(termId).Select(x => new CourseInfo
                {
                    TeacherId = x.TeacherId,
                    CourseId  = x.CourseId
                }).ToList();
                termTeacherIdList = courseList.Distinct(new TeacherComparer()).ToList();
            }

            var classTeachList = (from x1 in termTeacherIdList
                                  join x2 in teacherList on x1.TeacherId equals x2.TeacherId
                                  select new ClassCourseSearchTeacherResponse
            {
                TeacherNo = x2.TeacherId,
                TeacherName = x2.TeacherName
            }).ToList();

            //获取老师所属的课程
            foreach (var courseItem in classTeachList)
            {
                courseItem.TeacherByCourse = courseList.Where(x => x.TeacherId == courseItem.TeacherNo).Select(x => new ClassCourseResponse
                {
                    CourseId = x.CourseId
                }).Distinct(new CourseInfoComparer()).ToList();
            }

            return(classTeachList);
        }
Esempio n. 2
0
        /// <summary>
        /// 获取已上课的上课时间段Id
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2018-11-23</para>
        /// </summary>
        /// <param name="auditId">审核Id</param>
        /// <param name="classRoomId">教室Id</param>
        /// <returns></returns>
        private static List <long> GetHasBeenClassTimeIds(long auditId, long classRoomId)
        {
            var autClasss     = new TblAutClassRepository().GetByAuditId(auditId).Result;
            var autClassTimes = new TblAutClassTimeRepository().GetByAuditIdAsync(auditId).Result;

            var hasBeenClassTimeId = from a in autClasss                                        //班级
                                     join b in autClassTimes on a.ClassId equals b.ClassId      //班级上课时间
                                     where a.ClassRoomId == classRoomId
                                     select b.SchoolTimeId;

            return(hasBeenClassTimeId.ToList());
        }
Esempio n. 3
0
        /// <summary>
        /// 添加班级排课
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2018-09-25</para>
        /// </summary>
        /// <param name="classRoomId">教室Id</param>
        /// <param name="schoolTimeId">时间段Id</param>
        /// <param name="request">班级排课数据源</param>
        /// <param name="createUserName">创建人用户名称</param>
        /// <returns></returns>
        public static void AddClass(long classRoomId, long schoolTimeId, ClassScheduleRequest request, string createUserName)
        {
            TblAutClass autClass = GetTblAutClass(request, classRoomId, schoolTimeId, createUserName);

            List <long> hasBeenClassTimeIds = GetHasBeenClassTimeIds(autClass.AuditId, classRoomId);

            List <TblAutClassTime> autClassTimes = GetTblAutClassTimes(request, autClass, hasBeenClassTimeIds, schoolTimeId);

            //校验老师是否重复
            VerifyTeacherOccupy(autClassTimes.Select(x => x.SchoolTimeId), request.TeacherId, autClass.TermId);

            Task[] tasks = new Task[2];
            tasks[0] = new TblAutClassRepository().AddTask(autClass);
            tasks[1] = new TblAutClassTimeRepository().SaveTask(autClassTimes);
            Task.WaitAll(tasks);
        }