public static string StringBuilderModel(AnnouncementLocateModel model) { StringBuilder sb = new StringBuilder(); if (model.BuildingNumber != null) { sb.Append(model.BuildingNumber + " "); } if (model.StreetName != null) { sb.Append(model.StreetName + ", "); } if (model.Borough != null) { sb.Append(model.Borough + ", "); } if (model.City != null) { sb.Append(model.City + ", "); } if (model.Country != null) { sb.Append(model.Country); } return(sb.ToString()); }
public static async Task <AnnouncementLocateModel> GetAddressFromGoogle(decimal lat, decimal lng, Language language) { var result = new AnnouncementLocateModel(); Uri addressUri = null; if (language == Language.English) { addressUri = new Uri( $"https://maps.googleapis.com/maps/api/geocode/json?latlng={lat},{lng}{ConstValues.GoogleLocateKey}&language=en"); } else { addressUri = new Uri( $"https://maps.googleapis.com/maps/api/geocode/json?latlng={lat},{lng}{ConstValues.GoogleLocateKey}&language=ar"); } using (var client = new HttpClient()) { var resp = await client.GetAsync(addressUri); var json = await resp.Content.ReadAsStringAsync(); var token = JToken.Parse(json); var array = token.SelectToken("results"); var deserialized = JsonConvert.DeserializeObject <List <UserLocationParsingBase> >(array.ToString()); //var item = deserialized.FirstOrDefault(); result.Lat = lat; result.Lng = lng; result.BuildingNumber = deserialized.SelectMany(s => s.AddressComponents) .Where(x => x.Types.Contains("street_number")).Select(ac => ac.Name).FirstOrDefault(); result.StreetName = deserialized.SelectMany(s => s.AddressComponents) .Where(x => x.Types.Contains("route")).Select(ac => ac.Name).FirstOrDefault(); result.City = deserialized.SelectMany(s => s.AddressComponents) .Where(x => x.Types.Contains("locality")).Select(ac => ac.Name).FirstOrDefault(); result.Country = deserialized.SelectMany(s => s.AddressComponents) .Where(x => x.Types.Contains("country")).Select(ac => ac.Name).FirstOrDefault(); result.PostalCode = deserialized.SelectMany(s => s.AddressComponents) .Where(x => x.Types.Contains("postal_code")).Select(ac => ac.Name).FirstOrDefault(); //Test //var BuildingNumber = deserialized.SelectMany(s => s.AddressComponents) // .Where(x => x.Types.Contains("street_number")).Select(ac => ac.Name).FirstOrDefault(); //var StreetName = deserialized.SelectMany(s => s.AddressComponents) // .Where(x => x.Types.Contains("route")).Select(ac => ac.Name).FirstOrDefault(); //var City = deserialized.SelectMany(s => s.AddressComponents) // .Where(x => x.Types.Contains("locality")).Select(ac => ac.Name).FirstOrDefault(); //var Country = deserialized.SelectMany(s => s.AddressComponents) // .Where(x => x.Types.Contains("country")).Select(ac => ac.Name).FirstOrDefault(); //var PostalCode = deserialized.SelectMany(s => s.AddressComponents) // .Where(x => x.Types.Contains("postal_code")).Select(ac => ac.Name).FirstOrDefault(); //Test } return(result); }