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);
                        }
                    }
                });
            }
        }
        private void FindStoresByPostalCode()
        {
            this.storeModel.FindStoresByPostalCodeAsync(this.PostalCode, this.SearchRadius, (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);
                    }
                }
            });
        }
        private void AddStore(UserStoreViewModel store)
        {
            this.storeModel.AddStoreForCurrentUserAsync(store, (error) =>
            {
                if (error != null)
                {
                    // Display error, normally this would be done through a property
                    MessageBox.Show(error.Message);
                    return;
                }

                store.UsedByUser = true;
                this.UserStores.Add(store.Store);
                //MessageBox.Show("Success");
            });
        }