Ejemplo n.º 1
0
        /// <summary>
        /// 批量添加上课时间段
        /// <para>作     者:Huang GaoLiang  </para>
        /// <para>创建时间:2018-09-26  </para>
        /// </summary>
        /// <param name="list">上课时间段集合</param>
        /// <param name="toTermId">学期编号</param>
        /// <returns>返回受影响的行数</returns>
        internal async Task <int> AddTaskDatSchoolTime(List <TblDatSchoolTime> list, long toTermId)
        {
            TblDatSchoolTimeRepository schoolTimeRepository = new TblDatSchoolTimeRepository();
            await schoolTimeRepository.DeleteTask(toTermId); //先删除,后添加

            return(await schoolTimeRepository.AddTask(list));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// <para>作    者: Huang GaoLiang </para>
        /// <para>创建时间: 2019-02-19</para>
        /// </summary>
        /// <param name="schoolTimeId">上课时间段编号</param>
        /// <returns>返回上课时间段信息</returns>
        public static SchoolTimeService CreateSchoolTimeService(long schoolTimeId)
        {
            TblDatSchoolTimeRepository repository = new TblDatSchoolTimeRepository();
            TblDatSchoolTime           entity     = repository.Load(schoolTimeId);

            return(new SchoolTimeService(entity.TermId));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 重新构造上课时间段编号
        /// <para>作     者:Huang GaoLiang  </para>
        /// <para>创建时间:2018-09-07  </para>
        /// </summary>
        /// <param name="schoolTimeRepository">上课时间段仓储</param>
        /// <param name="schoolTime">上课时间段实体</param>
        /// <param name="schoolTimeList">上课时间段集合</param>
        /// <returns>返回上课时间段编号集合</returns>
        private static async Task <List <TblDatSchoolTime> > SchoolTimeCombinated(TblDatSchoolTimeRepository schoolTimeRepository, TblDatSchoolTime schoolTime, List <TblDatSchoolTime> schoolTimeList)
        {
            // 判断上课时间段数据是否为空
            if (schoolTime != null)
            {
                schoolTimeList = await schoolTimeRepository.Get(schoolTime.TermId, schoolTime.WeekDay, schoolTime.Duration);

                schoolTimeList = schoolTimeList.Where(m => m.SchoolTimeId != schoolTime.SchoolTimeId).OrderBy(m => m.Duration).ThenBy(m => m.BeginTime).ToList();
                int sixtyclassTimeNo  = 0;
                int ninetyclassTimeNo = 0;

                foreach (TblDatSchoolTime item in schoolTimeList)
                {
                    // 60分钟的编号加上S
                    if (item.Duration == (int)TimeType.Sixty)
                    {
                        sixtyclassTimeNo++;
                        item.ClassTimeNo = "S" + sixtyclassTimeNo;
                    }
                    // 90分钟的编号加上M
                    if (item.Duration == (int)TimeType.Ninety)
                    {
                        ninetyclassTimeNo++;
                        item.ClassTimeNo = "M" + sixtyclassTimeNo;
                    }
                }
            }

            return(schoolTimeList);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 保存上课时间段
        /// <para>作     者:Huang GaoLiang  </para>
        /// <para>创建时间:2018-11-02 </para>
        /// </summary>
        /// <param name="schoolTimeSaveRequestList">上课时间段集合</param>
        /// <param name="schoolId">校区编号</param>
        /// <exception cref="AMS.Core.BussinessException">
        /// 异常ID:1,学期编号不能为空
        /// </exception>
        public async Task Save(List <SchoolTimeSaveRequest> schoolTimeSaveRequestList, string schoolId)
        {
            // 如果学期不存在
            if (_termId < 1)
            {
                throw new BussinessException((byte)ModelType.Datum, 3);
            }

            // 如果上课时间段集合为空
            if (schoolTimeSaveRequestList == null && !schoolTimeSaveRequestList.Any())
            {
                return;
            }

            // 1、校验数据的合法性
            List <TblDatSchoolTime> dbSchoolTimeIds = new TblDatSchoolTimeRepository().LoadList(m => m.SchoolId == schoolId && m.TermId == _termId && m.WeekDay == schoolTimeSaveRequestList.FirstOrDefault().WeekDay);

            foreach (SchoolTimeSaveRequest schoolTime in schoolTimeSaveRequestList)
            {
                List <long> schoolTimeIds = dbSchoolTimeIds.Select(m => m.SchoolTimeId).ToList();
                Verification(schoolTimeSaveRequestList, schoolTime, schoolTimeIds);
            }

            // 2、集合重新排序,生成时间段编号
            List <SchoolTimeSaveRequest> resultList = schoolTimeSaveRequestList.OrderBy(m => m.BeginTime).ToList();

            // 3、生成编号
            CodingRules(resultList);
            var info    = schoolTimeSaveRequestList.FirstOrDefault();
            int weekDay = 0;

            if (info != null)
            {
                weekDay = info.WeekDay;
            }
            List <TblDatSchoolTime> schoolTimeList = Mapper.Map <List <SchoolTimeSaveRequest>, List <TblDatSchoolTime> >(resultList);

            // 校区编号
            foreach (var item in schoolTimeList)
            {
                item.SchoolId = schoolId;
            }
            // 3、1添加之前先删除对应的数据
            await _schoolTimeRepository.Value.DeleteBytermIdAndWeek(_termId, weekDay);

            // 3、2添加
            await _schoolTimeRepository.Value.BatchInsertsAsync(schoolTimeList);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 描述:根据日期获取时间段集合
        /// <para>作者:瞿琦</para>
        /// <para>创建时间:2019-3-14</para>
        /// </summary>
        /// <param name="schoolId">校区Id</param>
        /// <param name="day">日期</param>
        /// <returns>时间段集合</returns>
        public static List <SchoolDayTimeListResponse> GetDayTimeList(string schoolId, DateTime day)
        {
            //获取今天属于星期几
            int dayInt = WeekDayConvert.DayOfWeekToInt(day);
            //获取日期所属学期
            var termList          = new TblDatTermRepository().GetDateByTermList(day);
            var schoolTimeList    = new TblDatSchoolTimeRepository().GetSchoolOrTermBySchoolTimeList(schoolId, termList.Select(x => x.TermId));
            var daySchoolTimeList = schoolTimeList.Where(x => x.WeekDay == dayInt).Select(x => new SchoolDayTimeListResponse
            {
                BeginTime = x.BeginTime,
                EndTime   = x.EndTime
            }).Distinct(new Compare <SchoolDayTimeListResponse>((x, y) => (x != null && y != null && x.BeginTime == y.BeginTime && x.EndTime == y.EndTime)))
                                    .ToList();

            return(daySchoolTimeList);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 根据主键删除一条上课时间段
        /// <para>作     者:Huang GaoLiang  </para>
        /// <para>创建时间:2018-09-07  </para>
        /// </summary>
        /// <param name="schoolTimeId">上课时间段主键编号</param>
        /// <exception cref="AMS.Core.BussinessException">
        /// 异常ID:7,上课时间段编号不能为空
        /// </exception>
        public static async Task Remove(long schoolTimeId)
        {
            if (schoolTimeId < 1)
            {
                throw new BussinessException((byte)ModelType.Datum, 7);
            }

            // 1、查询需要数据的删除
            TblDatSchoolTimeRepository schoolTimeRepository = new TblDatSchoolTimeRepository();
            TblDatSchoolTime           schoolTime           = await schoolTimeRepository.LoadTask(schoolTimeId);

            // 2、校验是否可以删除(在课表中被使用的时间段不允许被删除)
            CanDelete(schoolTimeId, schoolTime.TermId);

            List <TblDatSchoolTime> schoolTimeList = new List <TblDatSchoolTime>();

            schoolTimeList = await SchoolTimeCombinated(schoolTimeRepository, schoolTime, schoolTimeList);

            await schoolTimeRepository.DeleteTask(schoolTime.TermId, schoolTime.WeekDay, schoolTime.Duration);

            await schoolTimeRepository.AddTask(schoolTimeList);
        }