private static GlobalAddress ParsedJSONAddress(HttpResponseMessage response)
        {
            GlobalAddress globalAddress     = new GlobalAddress();
            var           content           = response.Content.ReadAsStringAsync();
            JObject       parsedJson        = JObject.Parse(content.Result);
            JToken        firstResults      = parsedJson["results"][0];
            JToken        addressComponents = firstResults["address_components"];

            foreach (var component in addressComponents)
            {
                foreach (var type in component["types"])
                {
                    if (IsNotCountryType(type))
                    {
                        continue;
                    }
                    JToken countryToken = component["long_name"];
                    globalAddress.country = countryToken.ToString();
                    break;
                }
            }
            JToken streetAddress = firstResults["formatted_address"];

            globalAddress.streetAddress = streetAddress.ToString();
            JToken loc = firstResults["geometry"]["location"];
            JToken lat = loc["lat"];
            JToken lng = loc["lng"];

            globalAddress.lat = Double.Parse(lat.ToString());
            globalAddress.lng = Double.Parse(lng.ToString());
            return(globalAddress);
        }
        public ReverseGeocodingResponse(ReverseGeocodingRequest request, string googleMapsAPIKey)
        {
            string query  = ReverseGeocodingQuery(request, googleMapsAPIKey);
            var    result = RunQueryAsync(query);

            Address = result.Result;
        }