예제 #1
0
        private void IsContainClass(IEnumerable <dynamic> coachTeachingSches, DateTime inClassStart, DateTime inClassOver, Sys.Models.TeachingSchedule info)
        {
            if (coachTeachingSches != null || coachTeachingSches.Count() > 0)
            {
                string timeStr = info.CurriculumBeginTime + "-" + info.CurriculumEndTime;

                foreach (var item in coachTeachingSches)
                {
                    //已经添加的上课时间
                    DateTime classStart = Convert.ToDateTime("2008-08-08 " + item.CurriculumBeginTime);
                    //已经添加的下课时间
                    DateTime classOver = Convert.ToDateTime("2008-08-08 " + item.CurriculumEndTime);

                    if ((inClassStart >= classStart && inClassStart <= classStart) ||
                        (inClassStart >= classOver && inClassStart <= classOver))
                    {
                        throw new Exception(info.CurriculumDate.Value.ToString("yyyy-MM-dd") + " " + timeStr + "已排课");
                    }
                }
            }
        }
예제 #2
0
        private IList <Sys.Models.TeachingSchedule> BuildClass(bool isClass, DateTime startDate, string CurriculumTime, Models.RequestModel.TeachingScheduleRequest teachingschedule)
        {
            IList <Sys.Models.TeachingSchedule> entityList = new List <Sys.Models.TeachingSchedule>();

            if (!isClass)
            {
                return(entityList);
            }

            string[] curriculumAMTimeArr = CurriculumTime.Split('-');
            //上课开始时间
            DateTime classStartTime = Convert.ToDateTime("2008-08-08 " + curriculumAMTimeArr[0]);
            //上课结束时间
            DateTime classOverTime = Convert.ToDateTime("2008-08-08 " + curriculumAMTimeArr[1]);

            //检查是否有重复课程
            IEnumerable <dynamic> coachTeachingSches = Services.CoachService.GetCoachTeachingScheByDay(teachingschedule.CoachID.Value, startDate.ToString("yyyy-MM-dd"), startDate.AddDays(1).ToString("yyyy-MM-dd"));

            bool classIsContain = true;

            while (classIsContain)
            {
                //单节课下课时间
                DateTime singleClassOverTime = classStartTime.AddMinutes(teachingschedule.ClassLength);

                Sys.Models.TeachingSchedule info = new Sys.Models.TeachingSchedule()
                {
                    AddTime             = DateTime.Now,
                    CurriculumDate      = startDate,
                    CurriculumBeginTime = classStartTime.ToString("HH:mm"),
                    CurriculumEndTime   = singleClassOverTime.ToString("HH:mm"),
                    Info          = teachingschedule.Info,
                    CampusID      = teachingschedule.CampusID,
                    CoachID       = teachingschedule.CoachID,
                    CoachPrice    = teachingschedule.CoachPrice,
                    PKType        = teachingschedule.PKType,
                    Price         = teachingschedule.Price,
                    State         = 0,
                    Title         = teachingschedule.Title,
                    VenueID       = teachingschedule.VenueID,
                    PurchasePrice = teachingschedule.PurchasePrice
                };

                //设置下一节课上课时间
                if (singleClassOverTime >= classOverTime)
                {
                    singleClassOverTime    = classOverTime;
                    info.CurriculumEndTime = classOverTime.ToString("HH:mm");
                    classIsContain         = false;
                }

                //上课开始时间必须小于下课时间
                if (classStartTime < singleClassOverTime)
                {
                    IsContainClass(coachTeachingSches, classStartTime, singleClassOverTime, info);

                    entityList.Add(info);
                    classStartTime = classStartTime.AddMinutes(teachingschedule.ClassLength).AddMinutes(teachingschedule.RestLength);
                }
            }

            return(entityList);
        }