Example #1
0
        /// <summary> Удалить узел из списка сохраненных. </summary>
        /// <param name="node"> Узел, который нужно удалить. </param>
        private void RemoveFromFavourite(Node node)
        {
            var nodeItem = FavouriteItems.Where(i => i.Header.ToString() == node.Name).SingleOrDefault();

            FavouriteItems.Remove(nodeItem);
            CurrentUser.Favourite.Remove(node);
        }
Example #2
0
        /// <summary> Добавить узел в список сохраненных. </summary>
        /// <param name="node"> Узел, который нужно добавить. </param>
        private void AddToFavourite(Node node)
        {
            var item = new TreeViewItem {
                Header = node.Name
            };
            var menu = new ContextMenu();

            menu.Items.Add(new MenuItem
            {
                Header           = "Сгенерировать рекомендации",
                Command          = GenerateRecsForSingleNodeCommand,
                CommandParameter = item,
            });
            menu.Items.Add(new MenuItem
            {
                Header           = "Удалить",
                Command          = RemoveFromFavouriteCommand,
                CommandParameter = item,
            });

            item.ContextMenu = menu;
            Tree.AddNodeToTreeView(item, node);

            FavouriteItems.Add(item);
            CurrentUser.Favourite.Add(node);
        }
        private async Task <bool> GetFavouriteItems()
        {
            try
            {
                FavouriteItems.Clear();
                Log.Info("Getting favourites for user [{0}]", AuthenticationService.Current.LoggedInUser.Name);

                var query = new ItemQuery
                {
                    UserId    = AuthenticationService.Current.LoggedInUser.Id,
                    Filters   = new[] { ItemFilter.IsFavorite },
                    Recursive = true
                };
                var items = await _apiClient.GetItemsAsync(query);

                if (items != null && items.Items != null)
                {
                    foreach (var item in items.Items.Take(6))
                    {
                        FavouriteItems.Add(item);
                    }
                }
                return(true);
            }
            catch (HttpException ex)
            {
                Log.ErrorException("GetFavouriteItems()", ex);
                return(false);
            }
        }
        private async Task <bool> GetFavouriteItems()
        {
            try
            {
                FavouriteItems.Clear();
                Log.Info("Getting favourites for user [{0}]", AuthenticationService.Current.LoggedInUserId);

                var query = new ItemQuery
                {
                    UserId    = AuthenticationService.Current.LoggedInUserId,
                    Filters   = new[] { ItemFilter.IsFavorite },
                    Fields    = new[] { ItemFields.MediaSources, ItemFields.SyncInfo },
                    Recursive = true
                };
                var items = await ApiClient.GetItemsAsync(query);

                if (items != null && items.Items != null)
                {
                    foreach (var item in items.Items.Take(6))
                    {
                        FavouriteItems.Add(item);
                    }
                }
                return(true);
            }
            catch (HttpException ex)
            {
                Utils.HandleHttpException("GetFavouriteItems()", ex, NavigationService, Log);
                return(false);
            }
        }
 private void Reset()
 {
     TileService.Current.ResetWideTile(App.SpecificSettings.UseTransparentTile);
     _hasLoaded = false;
     Folders.Clear();
     UserViews.Clear();
     RecentItems.Clear();
     FavouriteItems.Clear();
     InProgressItems.Clear();
 }
Example #6
0
        private async void BtnAddToFavourites_Tapped(object sender, EventArgs e)
        {
            Image button = (Image)sender;

            button.IsEnabled = false;
            try
            {
                var item            = (Data)button.BindingContext;
                var fontImageSource = (FontImageSource)button.Source;

                if (fontImageSource.Glyph == "󰋕" && fontImageSource.Color == Color.FromHex("#C3C3C3"))
                {
                    await AnimateHeart(button);

                    fontImageSource.Glyph = "󰋑";
                    fontImageSource.Color = Color.FromHex("#F25278");

                    //add to favourites here
                    AddToFavouritesRequest addToFavouritesRequest = new AddToFavouritesRequest()
                    {
                        userId = OperationData.userId.ToString(),
                        itemId = item.id.ToString()
                    };
                    var res = await favouritesViewModel.AddToFavourites(addToFavouritesRequest);

                    if (res != null)
                    {
                        if (res.Code == 0)
                        {
                            FavouriteItems favItem = new FavouriteItems()
                            {
                                id          = item.id,
                                userId      = item.userId,
                                foodType    = item.foodType,
                                foodName    = item.foodName,
                                quantity    = item.quantity,
                                description = item.description,
                                unitPrice   = item.unitPrice,
                                itemImage   = item.itemImage,
                                preparedOn  = item.preparedOn,
                                expiryDate  = item.expiryDate,
                                isActive    = item.isActive,
                                isDeleted   = item.isDeleted,
                                createdAt   = item.createdAt,
                                updatedAt   = item.updatedAt
                            };
                            OperationData.FavouriteItemList.Add(favItem);
                            await DisplayAlert("Message", item.foodName + " added to favourites!", null, "OK");
                        }
                        else
                        {
                            await DisplayAlert("Message", "Couldn't add " + item.foodName + " to favourites. Please try again", null, "OK");

                            await AnimateHeart(button);

                            fontImageSource.Glyph = "󰋕";
                            fontImageSource.Color = Color.FromHex("#C3C3C3");
                        }
                    }
                    else
                    {
                        await DisplayAlert("Message", "Couldn't add " + item.foodName + " to favourites. Please try again", null, "OK");
                        await AnimateHeart(button);

                        fontImageSource.Glyph = "󰋕";
                        fontImageSource.Color = Color.FromHex("#C3C3C3");
                    }
                }
                else
                {
                    await AnimateHeart(button);

                    fontImageSource.Glyph = "󰋕";
                    fontImageSource.Color = Color.FromHex("#C3C3C3");

                    //remove from favourites here
                    RemoveFromFavouriteRequest removeFromFavouriteRequest = new RemoveFromFavouriteRequest()
                    {
                        userId = OperationData.userId.ToString(),
                        itemId = item.id.ToString()
                    };
                    var res = await favouritesViewModel.RemoveFromFavourites(removeFromFavouriteRequest);

                    if (res != null)
                    {
                        if (res.Code == 0)
                        {
                            foreach (var favItem in OperationData.FavouriteItemList)
                            {
                                if (item.id == favItem.id)
                                {
                                    OperationData.FavouriteItemList.Remove(favItem);
                                }
                            }
                            await DisplayAlert("Message", item.foodName + " removed from favourites", null, "OK");
                        }
                        else
                        {
                            await DisplayAlert("Message", "Couldn't remove " + item.foodName + " from favourites. Please try again", null, "OK");

                            await AnimateHeart(button);

                            fontImageSource.Glyph = "󰋑";
                            fontImageSource.Color = Color.FromHex("#F25278");
                        }
                    }
                    else
                    {
                        await DisplayAlert("Message", "Couldn't remove " + item.foodName + " from favourites. Please try again", null, "OK");
                        await AnimateHeart(button);

                        fontImageSource.Glyph = "󰋑";
                        fontImageSource.Color = Color.FromHex("#F25278");
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                button.IsEnabled = true;
            }
        }