/// <summary> /// 渲染上课时间段 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-06</para> /// </summary> /// <param name="scheduledTimes">已排课的上课时间</param> /// <param name="schoolTimes">上课时间段</param> /// <returns>上课时间段列表</returns> private static List <TimetableSchoolTimeResponse> GetSchoolTimeResponse(List <TimetableSchoolTimeResponse> schoolTimes, List <TblDatSchoolTime> scheduledTimes) { //渲染上课时间段 List <TimetableSchoolTimeResponse> res = new List <TimetableSchoolTimeResponse>(); foreach (var schoolTime in schoolTimes) { TimetableSchoolTimeResponse schoolTimeResponse = new TimetableSchoolTimeResponse() { WeekDay = schoolTime.WeekDay, Times = new List <SchoolTimePeriodResponse>() }; foreach (var time in schoolTime.Times) { if (scheduledTimes.Any(x => x.SchoolTimeId == time.SchoolTimeId)) { schoolTimeResponse.Times.Add(time); } } if (schoolTimeResponse.Times.Any()) { res.Add(schoolTimeResponse); } } return(res); }
/// <summary> /// 获取上课时间表 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-19</para> /// </summary> /// <returns>上课时间段信息</returns> private TupleSchoolTime GetTimetableSchoolTimeResponse(TimeType duration) { TupleSchoolTime res = new TupleSchoolTime { TblDatSchoolTimes = new SchoolTimeService(this._termId) .TblDatSchoolTime .Where(x => x.Duration == (int)duration) .OrderBy(x => x.WeekDay) .ThenBy(x => x.BeginTime) .ToList(), TimetableSchoolTimeResponses = new List <TimetableSchoolTimeResponse>() }; for (int i = 1; i <= 7; i++) { TimetableSchoolTimeResponse schoolTime = new TimetableSchoolTimeResponse { WeekDay = WeekDayConvert.IntToString(i), Times = new List <SchoolTimePeriodResponse>() }; var weekDayTime = res.TblDatSchoolTimes .Where(x => x.WeekDay == i) .Select(x => new SchoolTimePeriodResponse { SchoolTimeId = x.SchoolTimeId, BeginTime = x.BeginTime, EndTime = x.EndTime }) .OrderBy(x => x.BeginTime) .ToList(); schoolTime.Times.AddRange(weekDayTime); //如果该星期没有时间,则不加入该数据 if (schoolTime.Times != null && schoolTime.Times.Count > 0) { res.TimetableSchoolTimeResponses.Add(schoolTime); } } return(res); }