Beispiel #1
0
        public async Task <RecipeResults> SearchRecipesByNameAsync(int number, int offset, string query)
        {
            RecipeResults results = await Request <RecipeResults>("recipes/search?number=" + number + "&offset=" + offset + "&query=" + query + "&apiKey=" + Key);

            results.Recipes = await Request <List <Recipe> >("recipes/informationBulk?ids=" + results.Ids + "&apiKey=" + Key);

            return(results);
        }
Beispiel #2
0
        public async Task <RecipeResults> GetRecipesAsync(int number, int offset)
        {
            RecipeResults results = await Request <RecipeResults>("recipes/search?number=" + number + "&offset=" + offset + "&apiKey=" + Key);

            results.Recipes = await Request <List <Recipe> >("recipes/informationBulk?ids=" + results.Ids + "&apiKey=" + Key);

            return(results);
        }
Beispiel #3
0
        public async Task Searchbar_Search(string query)
        {
            if (SearchQuery == null)
            {
                PageNumber = 1;
            }
            SearchQuery = query;
            if (IsBusy)
            {
                return;
            }
            IsBusy = true;

            try
            {
                Items.Clear();

                if (PageNumber == 1)
                {
                    List <Recipe> UserRecipes = await App.Database.GetAllRecipesAsync();

                    foreach (var item in UserRecipes)
                    {
                        if (item.Title.ToUpper().Contains(SearchQuery.ToUpper()))
                        {
                            Items.Add(item);
                        }
                    }
                }

                RecipeResults recipeResults = await RecipeController.SearchRecipesByNameAsync(PageSize, GetOffset(), SearchQuery);

                foreach (var item in recipeResults.Recipes)
                {
                    Items.Add(item);
                }
                double totalPagesTemp = recipeResults.TotalResults / PageSize;
                TotalPages = Math.Ceiling(totalPagesTemp);
                UpdatePageNumberLabel();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Beispiel #4
0
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }
            IsBusy = true;

            try
            {
                Items.Clear();

                if (PageNumber == 1)
                {
                    List <Recipe> UserRecipes = await App.Database.GetAllRecipesAsync();

                    foreach (var item in UserRecipes)
                    {
                        Items.Add(item);
                    }
                }

                RecipeResults recipeResults = await RecipeController.GetRecipesAsync(PageSize, GetOffset());

                foreach (var item in recipeResults.Recipes)
                {
                    Items.Add(item);
                }
                double totalPagesTemp = recipeResults.TotalResults / PageSize;
                TotalPages = Math.Ceiling(totalPagesTemp);
                UpdatePageNumberLabel();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                SearchQuery = null;
                IsBusy      = false;
            }
        }