public void AddTrainsetSchedule(VehicleSchedule schedule) { if (schedule == null) { throw new ArgumentNullException(nameof(schedule)); } if (TrainsetScedules.Contains(schedule)) { throw new ArgumentOutOfRangeException(nameof(schedule), "Trainset schedule alreade added."); } TrainsetScedules.Add(schedule); }
private static IEnumerable <Message> ValidateOverlappingParts(this VehicleSchedule me) { var messages = new List <Message>(); var parts = me.Parts.ToArray(); for (var i = 0; i < parts.Length - 1; i++) { for (var j = i + 1; j < parts.Length; j++) { var p1 = parts[i]; var p2 = parts[j]; if (p1.To.Arrival > p2.From.Departure && p1.From.Departure < p2.To.Arrival) { messages.Add(Message.Warning(string.Format(CultureInfo.CurrentCulture, Resources.Strings.VehicleScheduleContainsOverlappingTrainParts, me.Identity, p1, p2))); } } } return(messages); }
public VehicleSchedulePart(VehicleSchedule locoSchedule, int fromPartIndex, int toPartIndex) { if (locoSchedule == null) { throw new ArgumentNullException(nameof(locoSchedule)); } if (fromPartIndex < 0 || fromPartIndex > (locoSchedule.Parts.Count) - 1) { throw new ArgumentOutOfRangeException(nameof(fromPartIndex)); } if (toPartIndex < fromPartIndex || toPartIndex > (locoSchedule.Parts.Count) - 1) { throw new ArgumentOutOfRangeException(nameof(toPartIndex)); } var parts = locoSchedule.Parts.ToArray(); From = (parts[fromPartIndex], fromPartIndex); To = (parts[toPartIndex], toPartIndex); }