Пример #1
0
        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);
        }