private GoogleMapsServiceResponse <RootObject> ProcessAddress(string address)
        {
            GoogleMapsServiceResponse <RootObject> response = new GoogleMapsServiceResponse <RootObject>();

            using (HttpClient client = new HttpClient())
            {
                try
                {
                    string     urlRequest   = _settings.UrlRootApi + UrlGeocoding + string.Format("/json?address={0}&key={1}", address, _settings.ApiKey);
                    var        stringTask   = client.GetStringAsync(urlRequest);
                    string     result       = stringTask.Result;
                    RootObject responseCall = JsonConvert.DeserializeObject <RootObject>(result);
                    response.Result = responseCall;
                    response.Status = base.GetEnumStatus(responseCall);
                }
                catch (Exception ex)
                {
                    response.Exception = ex;
                    if (ex.InnerException.GetType() == typeof(HttpRequestException))
                    {
                        response.Status = Enums.GoogleMapsResponseStatus.BAD_REQUEST_ERROR;
                    }
                    else
                    {
                        response.Status = Enums.GoogleMapsResponseStatus.UNKNOWN_ERROR;
                    }
                }
            }
            return(response);
        }
示例#2
0
        public GoogleMapsServiceResponse <RootObjectDistanceMatrix> GetDistance(string origin, string destination, string mode)
        {
            GoogleMapsServiceResponse <RootObjectDistanceMatrix> response = new GoogleMapsServiceResponse <RootObjectDistanceMatrix>();

            try
            {
                using (HttpClient client = new HttpClient())
                {
                    string urlRequest = _settings.UrlRootApi + UrlGeocoding + string.Format("/json?units=metric&origins={0}&destinations={1}&key={2}", origin, destination, _settings.ApiKey);
                    if (!String.IsNullOrEmpty(mode))
                    {
                        urlRequest += "&mode=" + mode;
                    }

                    var    stringTask = client.GetStringAsync(urlRequest);
                    string result     = stringTask.Result;
                    RootObjectDistanceMatrix resultCall = JsonConvert.DeserializeObject <RootObjectDistanceMatrix>(result);
                    response.Result = resultCall;
                    response.Status = base.GetEnumStatus(resultCall);
                }
            }
            catch (Exception ex)
            {
                response.Exception = ex;
                if (ex.InnerException.GetType() == typeof(HttpRequestException))
                {
                    response.Status = Enums.GoogleMapsResponseStatus.BAD_REQUEST_ERROR;
                }
                else
                {
                    response.Status = Enums.GoogleMapsResponseStatus.UNKNOWN_ERROR;
                }
            }
            return(response);
        }
示例#3
0
 private void BasicTestResponse(GoogleMapsServiceResponse <RootObject> response, GoogleMapsResponseStatus status)
 {
     Assert.IsNotNull(response, "response is null");
     Assert.IsTrue(response.Status == status, "status is null");
     if (status == GoogleMapsResponseStatus.OK)
     {
         Assert.IsNull(response.Exception);
     }
     else if (status == GoogleMapsResponseStatus.BAD_REQUEST_ERROR)
     {
         Assert.IsNotNull(response.Exception);
     }
 }