/// <summary>
        /// Returns the semester it's under, or null if it couldn't get its semester
        /// </summary>
        /// <returns></returns>
        public SemesterWin GetSemester()
        {
            ClassWin c = Parent as ClassWin;

            if (c == null)
            {
                return(null);
            }

            return(c.Parent as SemesterWin);
        }
예제 #2
0
        private static ScheduleWin findSchedule(ClassWin c, DateTime date)
        {
            for (int i = 0; i < c.Schedules.Count; i++)
            {
                if (c.Schedules[i].DayOfWeek == date.DayOfWeek)
                {
                    return(c.Schedules[i]);
                }
            }

            return(null);
        }
예제 #3
0
        protected static int compareViaClass(
            ClassWin class1, DateTime updated1, DateTime actualDate1,
            ClassWin class2, DateTime updated2, DateTime actualDate2)
        {
            if (class1 == null || class2 == null || class1 == class2)
            {
                return(updated1.CompareTo(updated2));
            }

            ScheduleWin schedule1 = findSchedule(class1, actualDate1);
            ScheduleWin schedule2 = findSchedule(class2, actualDate2);

            //if both schedules missing, use the updated time
            if (schedule1 == null && schedule2 == null)
            {
                return(updated1.CompareTo(updated2));
            }

            //if the other schedule is missing, this item should go first
            if (schedule2 == null)
            {
                return(-1);
            }

            //if this schedule is missing, the other item should go first
            if (schedule1 == null)
            {
                return(1);
            }

            //get the comparison of their start times
            int comp = schedule1.StartTime.TimeOfDay.CompareTo(schedule2.StartTime.TimeOfDay);

            //if they started at the same time, use the updated time
            if (comp == 0)
            {
                return(updated1.CompareTo(updated2));
            }

            return(comp);
        }