Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }