public virtual bool HasOverlapPeriods( ITimePeriod test ) { if ( test == null ) { throw new ArgumentNullException( "test" ); } foreach ( ITimePeriod period in periods ) { if ( test.OverlapsWith( period ) ) { return true; } } return false; }