Beispiel #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);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private async void UpdateButton_Clicked(object sender, EventArgs e)
        {
            using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Učitavanje.."))
            {
                switch (typeOfAdsPage)
                {
                case "favorites":
                    await XF.Material.Forms.UI.Dialogs.MaterialDialog.Instance.AlertAsync(message : "Kako biste uredili oglas idite na \n\"Profil -> Pogledaj oglase\"");

                    break;

                case "profile":
                    if (Title == "Oglasi oglašivača")
                    {
                        await MaterialDialog.Instance.SnackbarAsync(message : "Nije moguće uređivati tuđi oglas");

                        ((Button)sender).IsEnabled = false;
                    }
                    else
                    {
                        string SelectedAd = ((Button)sender).BindingContext as string;
                        var    ad         = (await AdverismentDataStore.GetItemsKeyValueAsync()).Where(a => a.Value.Id == SelectedAd).FirstOrDefault().Value;
                        await Navigation.PushAsync(new AddNewPage(ad));
                    }
                    break;

                default:
                    break;
                }
            }
        }
Beispiel #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;
                }
            }
        }
Beispiel #4
0
        public async Task GetCurrentUserAds(FirebaseUser user)
        {
            var currentUserCached = user;

            if (currentUserCached != null)
            {
                var allAds = await AdverismentDataStore.GetItemsKeyValueAsync();

                var currentUserAds = allAds.Where(u => u.Value.UserId == currentUserCached.Username).ToList();

                viewModel.Items.Clear();

                foreach (var ad in currentUserAds)
                {
                    viewModel.Items.Add(ad.Value);
                }
            }
        }
Beispiel #5
0
        public async Task <int> GetCurrentUserAdNumber()
        {
            var allAds = await AdverismentDataStore.GetItemsKeyValueAsync();

            return(allAds.Where(u => u.Value.UserId == FirebaseUser.Username).ToList().Count());
        }