// ---------------------------------------------------------------------- public int Compare(ITimePeriod left, ITimePeriod right) { ITimeInterval leftInterval = left as ITimeInterval; ITimeInterval rightInterval = right as ITimeInterval; int compare; if (leftInterval != null && rightInterval != null) { compare = leftInterval.StartInterval.CompareTo(leftInterval.EndInterval); } else { compare = left.CompareTo(right, TimePeriodStartComparer.Comparer); // compare by start //compare = left.CompareTo( right, TimePeriodDurationComparer.Comparer ); // compare by duration } return(compare); } // Compare