private void RemoveLocation(PersonalLocationViewModel personalLocation)
        {
            this.personalLocationModel.DeletePersonalLocationForCurrentUserAsync(personalLocation.Id, (error) =>
            {
                if (error != null)
                {
                    MessageBox.Show(error.Message);
                    return;
                }

                this.Refresh();
            });
        }
        private void FindStoresByPersonalLocation(PersonalLocationViewModel personalLocation)
        {
            if (personalLocation != null && personalLocation.Latitude.HasValue && personalLocation.Longitude.HasValue)
            {
                this.storeModel.FindStoresByLatitudeAndLongitudeAsync(personalLocation.Latitude.Value, personalLocation.Longitude.Value, this.SearchPersonalLocationRadius, (stores, error) =>
                {
                    if (error != null)
                    {
                        // Display error, normally this would be done through a property
                        MessageBox.Show(error.Message);
                        return;
                    }

                    this.SearchResults.Clear();
                    foreach (StoreViewModel store in stores)
                    {
                        using (UserStoreViewModel userStore = new UserStoreViewModel(store))
                        {
                            var storeUsedByUser = this.UserStores.FirstOrDefault(s => s.Id == store.Id);
                            if (storeUsedByUser == null)
                            {
                                userStore.UsedByUser = false;
                            }
                            else
                            {
                                userStore.UsedByUser = true;
                            }

                            userStore.Index = this.SearchResults.Count + 1;
                            this.SearchResults.Add(userStore);
                        }
                    }
                });
            }
        }