public GetRoutesForLocationCompleted(string requestUrl, RoutesForLocation_Callback callback) : base(requestUrl) { this.callback = callback; }
public void RoutesForLocation(GeoCoordinate location, string query, int radiusInMeters, int maxCount, RoutesForLocation_Callback callback) { string requestUrl = string.Format( "{0}/{1}.xml?key={2}&lat={3}&lon={4}&radius={5}&Version={6}", WebServiceUrlForLocation(location), "routes-for-location", KEY, location.Latitude.ToString(NumberFormatInfo.InvariantInfo), location.Longitude.ToString(NumberFormatInfo.InvariantInfo), radiusInMeters, APIVERSION ); if (string.IsNullOrEmpty(query) == false) { requestUrl += string.Format("&query={0}", query); } if (maxCount > 0) { requestUrl += string.Format("&maxCount={0}", maxCount); } HttpWebRequest requestGetter = (HttpWebRequest)HttpWebRequest.Create(requestUrl); requestGetter.BeginGetResponse( new AsyncCallback(new GetRoutesForLocationCompleted(requestUrl, callback).HttpWebRequest_Completed), requestGetter); }
public void RoutesForLocation(GeoCoordinate location, string query, int radiusInMeters, int maxCount, RoutesForLocation_Callback callback) { string requestUrl = string.Format( "{0}/{1}.xml?key={2}&lat={3}&lon={4}&radius={5}&Version={6}", WebServiceUrlForLocation(location), "routes-for-location", KEY, location.Latitude.ToString(NumberFormatInfo.InvariantInfo), location.Longitude.ToString(NumberFormatInfo.InvariantInfo), radiusInMeters, APIVERSION ); if (string.IsNullOrEmpty(query) == false) { requestUrl += string.Format("&query={0}", query); } if (maxCount > 0) { requestUrl += string.Format("&maxCount={0}", maxCount); } HttpWebRequest requestGetter = (HttpWebRequest)HttpWebRequest.Create(requestUrl); requestGetter.BeginGetResponse( delegate(IAsyncResult asyncResult) { XDocument xmlResponse = null; List <Route> routes = new List <Route>(); try { xmlResponse = ValidateWebCallback(asyncResult); routes.AddRange(from route in xmlResponse.Descendants("route") select ParseRoute(route, xmlResponse.Descendants("agency"))); } catch (WebserviceResponseException) { } catch (Exception ex) { Exception error = new WebserviceParsingException(requestUrl, xmlResponse.ToString(), ex); throw error; } callback(routes); }, requestGetter); }