Ejemplo n.º 1
0
        private async Task RefreshData(UserOrPublicOrFavouritesRecipes RecipesToRefresh)
        {
            // IsRefreshing = true;
            try
            {
                if (RecipesToRefresh == UserOrPublicOrFavouritesRecipes.UserRecipes)
                {
                    Title = "Moje przepisy";
                    await LoadRecipes(RecipesToRefresh, pageSize, pageNumberUserRecipes);
                }
                else if (RecipesToRefresh == UserOrPublicOrFavouritesRecipes.PublicResipes)
                {
                    Title = "Odkrywaj przepisy";
                    await LoadRecipes(RecipesToRefresh, pageSize, pageNumberPublicRecipes);
                }
                else if (RecipesToRefresh == UserOrPublicOrFavouritesRecipes.FavouritesRecipes)
                {
                    Title = "Ulubione przepisy";
                    await LoadRecipes(RecipesToRefresh, pageSize, pageNumberFavouritesRecipes);
                }

                //  await Task.WhenAll(LoadRecipes(), LoadImages());
                //await LoadImages();
            }
            catch (Exception ex)
            {
                //throw;
            }
            finally
            {
                IsRefreshing = false;
                IsBusy       = false;
            }
        }
Ejemplo n.º 2
0
        public void LogOffUser()
        {
            _currentRecipes = UserOrPublicOrFavouritesRecipes.UserRecipes;
            CanNext         = false;
            CanPrevious     = false;

            pageSize                = 10;
            totalPages              = 1;
            pageNumberUserRecipes   = 1;
            pageNumberPublicRecipes = 1;

            tempRecipes.Clear();
            _recipes.Clear();
        }
Ejemplo n.º 3
0
        private async Task LoadRecipes(UserOrPublicOrFavouritesRecipes userOrPublicOrFavourites, int pageSize, int pageNumber)
        {
            try
            {
                if (!IsBusy)
                {
                    IsBusy      = true;
                    CanNext     = false;
                    CanPrevious = false;

                    tempRecipes.Clear();
                    _recipes?.Clear();

                    List <RecipeModel> recipes = new List <RecipeModel>();

                    if (userOrPublicOrFavourites == UserOrPublicOrFavouritesRecipes.UserRecipes)
                    {
                        recipes = await _recipesEndPointAPI.GetRecipesLoggedUser(pageSize, pageNumber);
                    }
                    else if (userOrPublicOrFavourites == UserOrPublicOrFavouritesRecipes.PublicResipes)
                    {
                        recipes = await _recipesEndPointAPI.GetPublicRecipes(pageSize, pageNumber);
                    }
                    else if (userOrPublicOrFavourites == UserOrPublicOrFavouritesRecipes.FavouritesRecipes)
                    {
                        recipes = await _recipesEndPointAPI.GetFavouritesRecipes(pageSize, pageNumber);
                    }

                    if (recipes.Count > 0)
                    {
                        totalPages = recipes.FirstOrDefault().TotalPages;
                    }
                    else
                    {
                        totalPages = 1;
                    }

                    pageNumberActual = pageNumber;
                    PageInfo         = pageNumber.ToString();

                    RecipeModelsToRecipeModelDisplay(recipes);
                    await LoadImages();
                }
            }
            catch (Exception ex)
            {
                //_logger.Error("Got exception", ex);
                await Application.Current.MainPage.DisplayAlert("Błąd", ex.Message, "Ok");
            }
        }
Ejemplo n.º 4
0
        public RecipesViewModel(IRecipesEndPointAPI RecipesEndPointAPI, ILoggedUser loggedUser, IMapper mapper)
        {
            Title = "Moje przepisy";

            RefreshCommand = new Command(async() => await RefreshData(_currentRecipes));
            BackCommand    = new Command(async() => await RecipesBack());
            NextCommand    = new Command(async() => await RecipesNext());

            _recipesEndPointAPI = RecipesEndPointAPI;
            _loggedUser         = loggedUser;
            _mapper             = mapper;



            MessagingService.Current.Unsubscribe(EventMessages.ReloadUserRecipesEvent);
            MessagingService.Current.Subscribe(EventMessages.ReloadUserRecipesEvent, async(sender) =>
            {
                _currentRecipes = UserOrPublicOrFavouritesRecipes.UserRecipes;
                await RefreshData(_currentRecipes);
            });

            MessagingService.Current.Unsubscribe(EventMessages.ReloadPublicRecipesEvent);
            MessagingService.Current.Subscribe(EventMessages.ReloadPublicRecipesEvent, async(sender) =>
            {
                _currentRecipes = UserOrPublicOrFavouritesRecipes.PublicResipes;
                await RefreshData(_currentRecipes);
            });


            MessagingService.Current.Unsubscribe(EventMessages.ReloadFavouritesRecipesEvent);
            MessagingService.Current.Subscribe(EventMessages.ReloadFavouritesRecipesEvent, async(sender) =>
            {
                _currentRecipes = UserOrPublicOrFavouritesRecipes.FavouritesRecipes;
                await RefreshData(_currentRecipes);
            });

            MessagingService.Current.Unsubscribe(EventMessages.LogOffEvent);
            MessagingService.Current.Subscribe(EventMessages.LogOffEvent, (sender) =>
            {
                LogOffUser();
            });
        }
Ejemplo n.º 5
0
        public RecipePreviewViewModel(IRecipesEndPointAPI recipesEndPointAPI, IMapper mapper, ILoggedUser loggedUser, IAPIHelper aPIHelper)
        {
            EditCommand      = new Command(() => Edit());
            DeleteCommand    = new Command(async() => await Delete());
            FavouriteCommand = new Command(async() => await AddOrDeleteFavourites());

            _recipesEndPointAPI = recipesEndPointAPI;
            _mapper             = mapper;
            _loggedUser         = loggedUser;
            _aPIHelper          = aPIHelper;

            CanEdit = false;

            MessagingService.Current.Unsubscribe <RecipeAndTitlePage>(EventMessages.RecipesPreviewEvent);

            MessagingService.Current.Subscribe <RecipeAndTitlePage>(EventMessages.RecipesPreviewEvent, async(sender, arg) =>
            {
                if (arg.Title == "Moje przepisy")
                {
                    lastVised = UserOrPublicOrFavouritesRecipes.UserRecipes;
                }
                else if (arg.Title == "Odkrywaj przepisy")
                {
                    lastVised = UserOrPublicOrFavouritesRecipes.PublicResipes;
                }
                else if (arg.Title == "Ulubione przepisy")
                {
                    lastVised = UserOrPublicOrFavouritesRecipes.FavouritesRecipes;
                }

                RecipeModel recipeModel = _mapper.Map <RecipeModel>(arg.RecipeModelDisplay);

                currentRecipe = recipeModel;
                Title         = arg.RecipeModelDisplay.Name;

                _recipeId          = currentRecipe.RecipeId;
                RecipeName         = currentRecipe.Name;
                RecipeIngredients  = (currentRecipe.Ingredients).ToList();
                RecipeInstructions = currentRecipe.Instruction;
                ImagePath          = currentRecipe.ImagePath;

                if (!currentRecipe.IsPublic || currentRecipe.UserName == _loggedUser.UserName)
                {
                    CanEdit = true;
                    CanAddDeleteFavourites = false;
                }
                else
                {
                    CanEdit  = false;
                    UserName = "******" + currentRecipe.UserName;

                    CanAddDeleteFavourites = true;

                    if (await AlreadyFavourites())
                    {
                        _AddOrdDeleteFavourites = AddOrdDeleteFromFavourites.Delete;
                        FavouritesImage         = ImageConstants.StarFull;
                    }
                    else
                    {
                        _AddOrdDeleteFavourites = AddOrdDeleteFromFavourites.Add;
                        FavouritesImage         = ImageConstants.StarEmpty;
                    }
                }
            });
        }