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);
        }
Пример #3
0
        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);
        }