Пример #1
0
        public string Create(GoogleDistanceMatrixInput input)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append($"{Output}?key={GoogleApiKey}");
            if (input.OriginsLoc.Any() || input.OriginsPlaceId.Any())
            {
                builder.Append($"&origins={ConvertLocationsToString(input.OriginsLoc, input.OriginsPlaceId)}");
            }
            if (input.DestinationsLoc.Any() || input.DestinationsPlaceId.Any())
            {
                builder.Append($"&destinations={ConvertLocationsToString(input.DestinationsLoc, input.DestinationsPlaceId)}");
            }
            builder.Append($"&language={input.Language.GetString()}");
            builder.Append($"&mode={input.Mode.GetString()}");

            if (input.Restrictions != Enums.GoogleRestrictions.none)
            {
                builder.Append($"&avoid={input.Restrictions.GetString()}");
            }

            builder.Append($"&units={input.Units}");

            if (input.Departure_time != null)
            {
                builder.Append($"&departure_time={input.Departure_time}");
            }

            if (input.Mode == Enums.GoogleTravelMode.Transit && input.TransitRouting != Enums.TransitRoutingPreference.none)
            {
                builder.Append($"&transit_routing_preference={input.TransitRouting.GetString()}");
            }

            return(builder.ToString());
        }
Пример #2
0
        public async Task <GoogleDistanceMatrixRootObject> GetAsync(GoogleDistanceMatrixInput input)
        {
            var uri        = _googleUriProvider.Create(input);
            var resultJson = await _httpClient.GetStringAsync(uri);

            var result = JsonConvert.DeserializeObject <GoogleDistanceMatrixRootObject>(resultJson);

            result.resultJson = resultJson;
            result.inputUri   = uri;

            return(result);
        }