public void SetSelectedBank(string imageClassId) { SelectedBankPosition = ClosestBankPositions.FirstOrDefault(b => b.OldId == imageClassId); var bank = BanksRatesStore.BankExchangeRates.FirstOrDefault(b => b.OldId.ToString() == imageClassId); SelectedBankPositions.Name = bank.Name; SelectedBankPositions.OldId = bank.OldId.ToString(); SelectedBankPositions.Locations.Clear(); foreach (var address in bank.Addresses) { SelectedBankPositions.Locations.Add(address.Location); } }
public async Task <bool> FindClosestBanks() { var position = await UpdatePosition(); CurrentPosition = position; foreach (var bank in BanksRatesStore.BankExchangeRates) { var minDistance = double.MaxValue; var minDistancePosition = new Position(bank.Addresses[0].Location.Latitude, bank.Addresses[0].Location.Longitude); foreach (var address in bank.Addresses) { var bankPosition = new Position(address.Location.Latitude, address.Location.Longitude); var tempDistance = bankPosition.CalculateDistance(CurrentPosition, GeolocatorUtils.DistanceUnits.Kilometers); if (tempDistance < minDistance) { minDistance = tempDistance; minDistancePosition.Latitude = address.Location.Latitude; minDistancePosition.Longitude = address.Location.Longitude; } } ClosestBankPositions.Add(new ClosestBankPosition() { Name = bank.Name, OldId = bank.OldId.ToString(), Latitude = minDistancePosition.Latitude, Longitude = minDistancePosition.Longitude, Distance = (int)(minDistance * 1000) }); } return(true); }