Ejemplo n.º 1
0
        public async Task GetCurrentUserFavoriteAds()
        {
            var currentUserCached = (FirebaseUser)JsonConvert.DeserializeObject(Preferences.Get("FirebaseUser", ""), typeof(FirebaseUser));

            if (currentUserCached != null)
            {
                var allUsersFavoriteAds = await UserFavoriteAdsDataStore.GetItemsAsync(false);

                var currentUserFavoriteAds = allUsersFavoriteAds.Where(u => u.Username == currentUserCached.Username).ToList();

                var allAdsDict = await AdverismentDataStore.GetItemsKeyValueAsync();

                viewModel.Items.Clear();

                foreach (var ad in allAdsDict)
                {
                    foreach (var favorite in currentUserFavoriteAds)
                    {
                        if (ad.Value.Id == favorite.AdId)
                        {
                            viewModel.Items.Add(ad.Value);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private async void SaveFavorite_Clicked(object sender, EventArgs e)
        {
            using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Učitavanje.."))
            {
                string SelectedAdId      = ((Button)sender).BindingContext as string;
                var    currentUserCached = (FirebaseUser)JsonConvert.DeserializeObject(Preferences.Get("FirebaseUser", ""), typeof(FirebaseUser));
                var    allUsers          = await UserDataStore.GetItemsAsync(false);

                var currentUserFirebase = allUsers.Where(u => u.Email == currentUserCached.Email).FirstOrDefault();
                if (currentUserFirebase != null)
                {
                    UserFavoriteAd favoriteAd = new UserFavoriteAd
                    {
                        Username = currentUserFirebase.Username,
                        AdId     = SelectedAdId
                    };
                    var allUserFavorites = await UserFavoriteAdsDataStore.GetItemsAsync(false);

                    var alreadyExists = allUserFavorites.Where(f => f.AdId == favoriteAd.AdId && f.Username == favoriteAd.Username).ToList();
                    if (alreadyExists.Count() > 0)
                    {
                        await XF.Material.Forms.UI.Dialogs.MaterialDialog.Instance.AlertAsync(message : "Oglas je već bio spremljen!");
                    }
                    else
                    {
                        await UserFavoriteAdsDataStore.AddItemAsync(favoriteAd);

                        await XF.Material.Forms.UI.Dialogs.MaterialDialog.Instance.AlertAsync(message : "Uspješno ste spremili oglas!");
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private async void DeleteAd_Clicked(object sender, EventArgs e)
        {
            using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Učitavanje.."))
            {
                switch (typeOfAdsPage)
                {
                case "favorites":
                    string SelectedAdId = ((Button)sender).BindingContext as string;
                    var    hasConfirmed = await XF.Material.Forms.UI.Dialogs.MaterialDialog.Instance.ConfirmAsync(message : "Jeste li sigurni?",
                                                                                                                  confirmingText : "Ukloni", dismissiveText : "Odustani");

                    if (hasConfirmed != false && hasConfirmed != null)
                    {
                        var hasDeleted = await UserFavoriteAdsDataStore.DeleteItemAsync(SelectedAdId);

                        if (hasDeleted)
                        {
                            await GetCurrentUserFavoriteAds();
                        }
                    }
                    break;

                case "profile":
                    string SelectedAd = ((Button)sender).BindingContext as string;
                    if (Title == "Oglasi oglašivača")
                    {
                        await MaterialDialog.Instance.SnackbarAsync(message : "Nije moguće brisati tuđi oglas");

                        ((Button)sender).IsEnabled = false;
                    }
                    else
                    {
                        var hasConfirm = await XF.Material.Forms.UI.Dialogs.MaterialDialog.Instance.ConfirmAsync(message : "Jeste li sigurni?",
                                                                                                                 confirmingText : "Obriši", dismissiveText : "Odustani");

                        if (hasConfirm != false && hasConfirm != null)
                        {
                            var hasDeleted = await AdverismentDataStore.DeleteItemAsync(SelectedAd);

                            if (hasDeleted)
                            {
                                await Task.WhenAny
                                (
                                    GetCurrentUserAds(FirebaseUser),
                                    Navigation.PopAsync(true)
                                );
                            }
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }