public GeocodingResponse Geocode(GeocodingRequest request) { var query = new List <string>(); query.AddParameter("address", request.Address); query.AddParameter("components", request.Components); query.AddParameter("bounds", request.Bounds); query.AddParameter("region", request.Region); query.AddParameter("language", request.Language); if (request.NewForwardGeocoder) { query.AddParameter("new_forward_geocoder", "true"); } var uri = new Uri("https://maps.googleapis.com/maps/api/geocode/json?" + String.Join("&", query)); uri = uri.AddCredentials(credentials); var client = new WebClient(); client.Encoding = System.Text.Encoding.UTF8; var json = client.DownloadString(uri); using (var stringReader = new StringReader(json)) { var reader = new JsonTextReader(stringReader); var serializer = new JsonSerializer(); serializer.Converters.Add(new JsonEnumTypeConverter()); return(serializer.Deserialize <GeocodingResponse>(reader)); } }
public void ApiKey_Only_Works() { var uri = new Uri("https://dummy.com"); uri = uri.AddCredentials(new Credentials { ApiKey = "foo" }); Assert.IsTrue(uri.ToString().EndsWith("key=foo")); }
public void ClientId_And_PrivateKey_Works() { var uri = new Uri("https://dummy.com"); uri = uri.AddCredentials(new Credentials { ClientId = "foo", PrivateKey = "YmFyCg==" }); Assert.IsTrue(uri.ToString().Contains("client=foo")); Assert.IsTrue(uri.ToString().Contains("signature=")); }
public void PrivateKey_Only_Fails() { var uri = new Uri("https://dummy.com"); Assert.Throws <GoogleMapsException>(() => { uri.AddCredentials(new Credentials { PrivateKey = "foo" }); }); }
public void ApiKey_And_ClientId_Fails() { var uri = new Uri("https://dummy.com"); Assert.Throws <GoogleMapsException>(() => { uri.AddCredentials(new Credentials { ApiKey = "foo", ClientId = "bar" }); }); }