예제 #1
0
 public int GetFineOfFullSchedule(ISchedule schedule, EntityStorage eStorage)
 {
     int fineResult = 0;
     for (int groupIndex = 0; groupIndex < eStorage.StudentSubGroups.Length; groupIndex++)
     {
         PartialSchedule groupSchedule = schedule.GetPartialSchedule(eStorage.StudentSubGroups[groupIndex]);
         for (int dayIndex = 0; dayIndex < Constants.DAYS_IN_WEEK; dayIndex++)
         {
             StudentsClass[] sClass = groupSchedule.GetClassesOfDay(dayIndex);
             for (int classIndex = 0; classIndex < sClass.Length; classIndex++)
             {
                 if (sClasses.FindAll((c) => c.sClass == sClass[classIndex]).Count() > 0)
                 {
                     FixedClasses vipClass = sClasses.Find((c) => c.sClass == sClass[classIndex]);
                     if (vipClass.Room != schedule.GetClassRoom(sClass[classIndex]) && vipClass.Time != schedule.GetClassPosition(sClass[classIndex]).Value.Time)
                     {
                         if (isBlock)
                             return Constants.BLOCK_FINE;
                         else
                             fineResult += fine;
                     }
                 }
             }
         }
     }
     return fineResult;
 }
예제 #2
0
 public int GetFineOfAddedClass(ISchedule schedule, EntityStorage eStorage)
 {
     int fineResult = 0;
     StudentsClass tClass = schedule.GetTempClass();
     int tTime = schedule.GetClassPosition(tClass).Value.Time;
     if (sClasses.FindAll((c) => c.sClass == tClass).Count() > 0)
     {
         FixedClasses vipClass = sClasses.Find((c) => c.sClass == tClass);
         if (vipClass.Room != schedule.GetClassRoom(tClass) || vipClass.Time != tTime)
         {
             if (isBlock)
                 return Constants.BLOCK_FINE;
             else
                 fineResult += fine;
         }
     }
     else
     {
         if (sClasses.FindAll((c) => c.Time == tTime && StudentsClass.StudentClassContainsEvenOneSubGroup(tClass, c.sClass)).Count() > 0)
         {
             if (isBlock)
                 return Constants.BLOCK_FINE;
             else
                 fineResult += fine;
         }
     }
     return fineResult;
 }
 public int GetFineOfFullSchedule(ISchedule schedule, EntityStorage eStorage)
 {
     int fineResult = 0;
     if (favClassRooms == null)
     { return fineResult; }
     foreach (StudentsClass sClass in eStorage.Classes)
     {
         if (favClassRooms.ContainsKey(sClass))
         {
             if (favClassRooms[sClass].Find((c) => c == schedule.GetClassRoom(sClass)) == null)
             {
                 if (isBlock)
                     return Constants.BLOCK_FINE;
                 else
                     fineResult += fine;
             }
         }
     }
     return fineResult;
 }
예제 #4
0
 public int GetFineOfFullSchedule(ISchedule schedule, EntityStorage eStorage)
 {
     int fineResult = 0;
     if (favBuildings == null)
     { return fineResult; }
     foreach (StudentsClass sClass in eStorage.Classes)
     {
         foreach (Teacher teacher in sClass.Teacher)
         {
             if (favBuildings.ContainsKey(teacher))
             {
                 if (favBuildings[teacher].IndexOf(schedule.GetClassRoom(sClass).Housing) == -1)
                 {
                     if (isBlock)
                         return Constants.BLOCK_FINE;
                     else
                         fineResult += fine;
                 }
             }
         }
     }
     return fineResult;
 }