Пример #1
0
        /// <summary>
        /// 生成班级课表(SqdScheduleList),不会生成各节课的规则
        /// </summary>
        private void SetSqdScheduleListData()
        {
            TimeTestMatrix = new DtMatrix <bool>(DataRule.Solution);

            SqdScheduleList.Clear();

            foreach (EnLsnAct act in DataRule.Lsn.eachLsnAct())
            {
                SqdSchedule sqdSch;
                if (!SqdScheduleList.TryGetValue(act.ClsLesson.Squad, out sqdSch))
                {
                    sqdSch = new SqdSchedule(DataRule.Solution, act.ClsLesson.Squad);
                    SqdScheduleList.Add(act.ClsLesson.Squad, sqdSch);
                }
                sqdSch.FailLsnActs.Add(act);  //暂时存下
            }

            foreach (SqdSchedule sqdSch in SqdScheduleList.Values)
            {
                foreach (EnLsnAct act in sqdSch.FailLsnActs)
                {
                    if (act.ClsLesson.Teacher != null &&
                        !sqdSch.Teaches.Contains(act.ClsLesson.Teacher))
                    {
                        sqdSch.Teaches.Add(act.ClsLesson.Teacher);
                    }
                }

                PutActToMatrix(sqdSch);
            }
        }
Пример #2
0
 /// <summary>
 /// 有课表被编辑过
 /// </summary>
 public bool IsModified(BaseEntity entity)
 {
     if (entity is EnSquad)
     {
         //当班级课表被打开,删除班级后需要关闭打开的课表Form,
         //课表Form关闭时需要IsModified,但这是此班级已经不在SqdScheduleList中
         //直接返回一个false,简化程序逻辑(这是一个陷阱,要小心)
         if (SqdScheduleList.ContainsKey(entity as EnSquad))
         {
             return(SqdScheduleList[entity as EnSquad].Modified);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }