예제 #1
0
        public static int OnSort(SpeedInterval left, SpeedInterval right)
        {
            int result = left.mWorld.CompareTo(right.mWorld);

            if (result != 0)
            {
                return(result);
            }

            // These are intentionally inversed (larger numbers to the top)
            result = right.mDays.Count.CompareTo(left.mDays.Count);
            if (result != 0)
            {
                return(result);
            }

            DaysOfTheWeek leftDay = DaysOfTheWeek.None;

            foreach (DaysOfTheWeek day in left.mDays)
            {
                if (leftDay < day)
                {
                    leftDay = day;
                }
            }

            DaysOfTheWeek rightDay = DaysOfTheWeek.None;

            foreach (DaysOfTheWeek day in right.mDays)
            {
                if (rightDay < day)
                {
                    rightDay = day;
                }
            }

            result = leftDay.CompareTo(rightDay);
            if (result != 0)
            {
                return(result);
            }

            result = left.mStartHour.CompareTo(right.mStartHour);
            if (result != 0)
            {
                return(result);
            }

            return(0);
        }