/// <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);
        }
Exemple #2
0
        /// <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);
        }