private bool IsTimeslotFree(StretchPassing link) {
     if (_passings.Where(p => 
             (link.Departure >= p.Departure && link.Departure < p.Arrival) || 
             (link.Arrival > p.Departure && link.Arrival <= p.Arrival)).Count() > TracksCount)
         return false;
     return true;
 }
 internal void Add(StretchPassing link) {
     if (link == null) throw new ArgumentNullException(nameof(link));
     if (!IsTimeslotFree(link)) {
         throw new TimetableException("Timeslot not free."); }
     link.TrackLink = this;
     _passings.Add(link);
 }