private Address ConvertGoogleAddress(GeocodeResult geocodeResult) { var address = new Address(); address.PlaceId = geocodeResult.place_id; // very basic mapping TODO: handle more complex address types var streetNum = GetAddressComponent(geocodeResult, "street_number"); var streetName = GetAddressComponent(geocodeResult, "route"); address.AddressLine1 = streetNum + " " + streetName; address.Location = GetAddressComponent(geocodeResult, "locality"); address.State = GetAddressComponent(geocodeResult, "administrative_area_level_1"); address.Postcode = GetAddressComponent(geocodeResult, "postal_code"); address.FormattedAddress = geocodeResult.formatted_address; return(address); }
private static string GetAddressComponent(GeocodeResult result, string componentType) { return(result.address_components.FirstOrDefault(c => c.types.Contains(componentType))?.short_name); }