public async Task <Address[]> SearchAsync(string query, double?pickupLatitude, double?pickupLongitude, string currentLanguage, GeoResult geoResult = null) { var popularPlaces = new Address[0]; if (query.HasValue()) { popularPlaces = SearchPopularAddresses(query); } if (geoResult == null) { var addresses = await SearchUsingNameAsync(query, currentLanguage, pickupLatitude, pickupLongitude); return(addresses == null ? popularPlaces : popularPlaces.Concat(addresses.Select(a => new GeoObjToAddressMapper().ConvertToAddress(a, null, true))).ToArray()); } else { var addresses = geoResult.ConvertGeoResultToAddresses(); return(addresses == null ? popularPlaces : popularPlaces.Concat(addresses.Select(a => new GeoObjToAddressMapper().ConvertToAddress(a, null, true))).ToArray()); } }
public async Task <Address[]> SearchAsync(double latitude, double longitude, string currentLanguage, GeoResult geoResult = null, bool searchPopularAddress = false) { var addressesInRange = new Address[0]; if (searchPopularAddress) { addressesInRange = GetPopularAddressesInRange(new Position(latitude, longitude)); } var addresses = geoResult != null ? geoResult.ConvertGeoResultToAddresses() : await _mapApi.GeocodeLocationAsync(latitude, longitude, currentLanguage); return(addressesInRange .Concat(addresses.Select(ToAddress)) .ToArray()); }