public Task <GeoAddress> GetAddressDetailAsync(string id)
        {
            var client   = GetClient(PlaceDetailsServiceUrl);
            var resource = GetPlaceDetailRequest(id);

            Func <PlaceDetailResponse, GeoAddress> selector = response => ResourcesExtensions.ConvertGeoObjectToAddress(response.Result);

            return(HandleGoogleResultAsync(() => client.GetAsync <PlaceDetailResponse>(resource), selector, new GeoAddress()));
        }
        public async Task <GeoPlace> GetPlaceDetailAsync(string id)
        {
            var client   = GetClient(PlaceDetailsServiceUrl);
            var resource = GetPlaceDetailRequest(id);

            Func <PlaceDetailResponse, GeoPlace> selector = response => new GeoPlace
            {
                Id      = id,
                Name    = response.Result.Formatted_address,
                Address = ResourcesExtensions.ConvertGeoObjectToAddress(response.Result)
            };

            return(await HandleGoogleResultAsync(() => client.GetAsync <PlaceDetailResponse>(resource), selector, new GeoPlace()).ConfigureAwait(false));
        }