private static void ListVehicles(IBus13RouteDataService service) { var routes = service.GetRoutesAsync().Result; var vehicles = service.GetVehicleLocationsAsync(routes, GeoRect.EarthWide, 0).Result; foreach (var update in vehicles.Updates) { Console.WriteLine( "id:{0} type:{1} route:{2}", update.Vehicle.Id, update.Vehicle.Type, update.Vehicle.RouteInfo.RouteNumber); } }
private static void Trace(IBus13RouteDataService service, string vehicleId, IVehicleTraceOutputWriter outputWriter) { Console.WriteLine("Retrieving routes..."); var routes = service.GetRoutesAsync().Result; Console.WriteLine("{0} routes found...", routes.Count()); Console.WriteLine("Tracing {0}...", vehicleId); _traceTask = Task.Factory.StartNew(() => { var lastUpdate = DateTime.MinValue; var timestamp = 0; while (true) { ClearLine(); Console.Write("retrieving vehicle locations..."); var response = service.GetVehicleLocationsAsync(routes, GeoRect.EarthWide, timestamp).Result; var update = response.Updates.FirstOrDefault(x => x.Vehicle.Id.Equals(vehicleId)); if (update != null) { lastUpdate = DateTime.Now; ClearLine(); Console.WriteLine( "id:{0}, lat:{1}, lng:{2}, upd: {3}, rcvd:{4}", vehicleId, update.Vehicle.Location.Position.Latitude, update.Vehicle.Location.Position.Longitude, update.LastUpdate.ToString("u"), lastUpdate.ToString("u")); outputWriter.Write(update); } timestamp = response.Timestamp; ClearLine(); Console.Write("waiting 10s..."); Task.Delay(System.TimeSpan.FromSeconds(10)).Wait(); } }).ConfigureAwait(false); }