public bool RecallCounty(ILocationProvider provider) { if (provider != null) { GeoLocateResult r = provider.LocateIp(_Address); if (r != null) { Country = r.ISOCode; return(true); } } return(false); }
/// <summary> /// Performs asynchonous GeoLocation using the information in the specified request /// </summary> public async Task <GeoLocateResult> GeoLocateAsync(GeoLocateRequest request) { GeoLocateResult result = new GeoLocateResult(); result.Addresses = new GeoLocatorResultAddressCollection(); result.Status = new GeoLocatorResultStatus { Success = false }; if (!String.IsNullOrEmpty(request.Address.Place) && request.Address.Place.Length > 2) { try { var locateServiceUri = GeoLocateServiceUri(request.Address.Place, request.MaximumNumberOfResults); var searchUri = ReroutedGeoLocatorServiceUri(locateServiceUri); var searchResult = await new WebClient().DownloadStringTaskAsync(searchUri); if (!string.IsNullOrEmpty(searchResult)) { var doc = XDocument.Parse(searchResult); foreach (var geoAdress in GetGeoLocateServiceResult(doc)) { result.Addresses.Add(new GeoLocatorResultAddress { Place = geoAdress.Name, Description = geoAdress.Name, Envelope = geoAdress.Bounds }); } result.Status.Success = true; } } catch (Exception) {} } else { result.Status.Message = ApplicationResources.GeoLocatorEmptyRequest; } return(result); }
public bool RecallCounty(ILocationProvider provider) { if (provider != null) { GeoLocateResult r = provider.LocateIp(_Address); if (r != null) { string cn, ct; if (StringHelper.Split(r.ISOCode, '-', out cn, out ct)) { Continent = cn; Country = ct; } else { Country = r.ISOCode; } return(true); } } return(false); }