public GeoCodeResponse ParseResultsJson(string addressesJson, string address) { _addressObject = JObject.Parse(addressesJson); _geoCodeResponse = null; try { _geoCodeResponse = JsonConvert.DeserializeObject <GeoCodeResponse>(addressesJson); } catch (Exception ex) { Debug.WriteLine(ex.Message); } if (_geoCodeResponse == null || _geoCodeResponse.status == null) { return(_geoCodeResponse); } switch (_geoCodeResponse.status.ToUpper()) { case "OK": case "ZERO_RESULTS": case "REQUEST_DENIED": case "INVALID_REQUEST": { if (_cacheResults) { _addresses.Add(address, _geoCodeResponse); } break; } case "OVER_QUERY_LIMIT": { _dateWentOverLimit = System.DateTime.Now.Date; _googleMapApiOverLimit = true; break; } case "UNKNOWN_ERROR": { //if (!string.IsNullOrWhiteSpace(_googleGeoApiKey)) //{ // _addressesJson = await GetGoogleMapEncode(address); // _addressObject = JObject.Parse(_addressesJson); // _geoCodeResponse = JsonConvert.DeserializeObject<GeoCodeResponse>(_addressesJson); // if (_geoCodeResponse.status == "OVER_QUERY_LIMIT") // { // _dateWentOverLimit = System.DateTime.Now.Date; // _googleMapApiOverLimit = true; // } // else if (_cacheResults) // _addresses.Add(address, _geoCodeResponse); //} break; } } return(_geoCodeResponse); }
public async Task <GeoCodeResponse> ReverseLookupAsync(string address) { if (_cacheResults) { if (_addresses.ContainsKey(address)) { _geoCodeResponse = _addresses[address]; return(_addresses[address]); } } _addressesJson = await GetGoogleMapEncode(address); return(await this.ParseResultsJsonAsync(_addressesJson, address)); //_addressObject = JObject.Parse(_addressesJson); //_geoCodeResponse = JsonConvert.DeserializeObject<GeoCodeResponse>(_addressesJson); //switch (_geoCodeResponse.status.ToUpper()) //{ // case "OK": // case "ZERO_RESULTS": // case "REQUEST_DENIED": // case "INVALID_REQUEST": // { // if (_cacheResults) // _addresses.Add(address, _geoCodeResponse); // break; // } // case "OVER_QUERY_LIMIT": // { // _dateWentOverLimit = System.DateTime.Now.Date; // _googleMapApiOverLimit = true; // break; // } // case "UNKNOWN_ERROR": // { // _addressesJson = await GetGoogleMapEncode(address); // _addressObject = JObject.Parse(_addressesJson); // _geoCodeResponse = JsonConvert.DeserializeObject<GeoCodeResponse>(_addressesJson); // if (_geoCodeResponse.status == "OVER_QUERY_LIMIT") // { // _dateWentOverLimit = System.DateTime.Now.Date; // _googleMapApiOverLimit = true; // } // else if (_cacheResults) // _addresses.Add(address, _geoCodeResponse); // break; // } //} //return _geoCodeResponse; }