Пример #1
0
        private List <TimeSpan> CalculateArrivalTimes(TrafiApiDurationJSON trafiApiDurationJSON)
        {
            var arrivalTimes = new List <TimeSpan>();

            var arrivalTime = 0;

            for (int i = 0; i < trafiApiDurationJSON.DurationValuesDiff.Count; i++)
            {
                arrivalTime += trafiApiDurationJSON.DurationValuesDiff[i];
                for (int j = 0; j < trafiApiDurationJSON.DurationCounts[i]; j++)
                {
                    arrivalTimes.Add(new TimeSpan(0, arrivalTime, 0));
                }
            }

            return(arrivalTimes);
        }
Пример #2
0
        public Schedule Parse(TrafiApiTimeJSON timeJSON, TrafiApiDurationJSON durationJSON, List <TrafiApiTimetableStopJSON> stops)
        {
            var schedule = new Schedule();

            var transportStartingTimes = CalculateStartingTimes(timeJSON);
            var durationTimes          = CalculateArrivalTimes(durationJSON);

            for (int stopNumber = 0; stopNumber < stops.Count; stopNumber++)
            {
                var departingBusNumberWithTimes = new List <Tuple <int, TimeSpan> >();

                for (int departingBusNumber = 0; departingBusNumber < transportStartingTimes.Count; departingBusNumber++)
                {
                    departingBusNumberWithTimes.Add(Tuple.Create(departingBusNumber, transportStartingTimes[departingBusNumber] + durationTimes[departingBusNumber + transportStartingTimes.Count * stopNumber]));
                }

                schedule.InsertTime(stops[stopNumber].StopId, departingBusNumberWithTimes);
            }

            return(schedule);
        }