API.WebClients.TransitClient.CreateSchedule C# (CSharp) Метод

CreateSchedule() публичный Метод

Creates a bus schedule based on Google Transit data.
public CreateSchedule ( ) : ServerBusSchedule
Результат ServerBusSchedule
        public ServerBusSchedule CreateSchedule()
        {
            var googleRouteSchedules = GoogleTransitClient.GoogleTransitData.Schedules.ToDictionary(schedule => schedule.ConnexionzName);
            var routes = ConnexionzClient.Routes.Value.Where(r => r.IsActive && googleRouteSchedules.ContainsKey(r.RouteNo));

            // Build all the schedule data for intermediate stops.
            var routeSchedules = routes.Select(r => new
            {
                routeNo = r.RouteNo,
                daySchedules = googleRouteSchedules[r.RouteNo].Days.Select(
                    d => new
                    {
                        days = d.Days,
                        stopSchedules = InterpolateSchedule(r, d.StopSchedules)
                    })
            });

            // Now turn it on its head so it's easy to query from a stop-oriented way.
            var platforms = ConnexionzClient.Platforms.Value;

            var result = platforms.ToDictionary(p => p.PlatformNo,
                p => routeSchedules.Select(r => new BusStopRouteSchedule
                {
                    RouteNo = r.routeNo,
                    DaySchedules = r.daySchedules.Select(ds => new BusStopRouteDaySchedule
                    {
                        Days = ds.days,
                        Times = ds.stopSchedules.FirstOrDefault(ss => ss.Item1 == p.PlatformNo)?.Item2
                    })
                    .Where(ds => ds.Times != null)
                    .ToList()
                })
                .Where(r => r.DaySchedules.Any())
            );

            return result;
        }
    }