public string Create(GooglePlaceSearchInput input) { StringBuilder builder = new StringBuilder(); builder.Append($"{Output}?key={GoogleApiKey}"); builder.Append($"&input={EncodeString(input.Input)}"); builder.Append($"&inputtype=textquery"); builder.Append($"&language={input.Language.GetString()}"); if (input.Fields.Count > 0) { var fields = String.Join(",", input.Fields.Select(x => x.Name).ToArray()); builder.Append($"&fields={fields}"); } if (input.Location != null && input.Radius == null) { builder.Append($"&locationbias=point:{input.Location.lat.ToString(System.Globalization.CultureInfo.InvariantCulture)},{input.Location.lng.ToString(System.Globalization.CultureInfo.InvariantCulture)}"); } else if (input.Location != null && input.Radius != null) { builder.Append($"&locationbias=circle:{input.Radius}@{input.Location.lat.ToString(System.Globalization.CultureInfo.InvariantCulture)},{input.Location.lng.ToString(System.Globalization.CultureInfo.InvariantCulture)}"); } return(builder.ToString()); }
public async Task <GooglePlaceSearchRootObject> GetAsync(GooglePlaceSearchInput input) { var uri = _googleUriProvider.Create(input); var resultJson = await _httpClient.GetStringAsync(uri); var result = JsonConvert.DeserializeObject <GooglePlaceSearchRootObject>(resultJson); result.resultJson = resultJson; result.inputUri = uri; return(result); }