コード例 #1
0
        public IActionResult ShowAllFavorites(string sortOrder)
        {
            ViewData["CategorySortParm"] = sortOrder == "Category" ? "Category_desc" : "Category";
            ViewData["RatingSortParm"]   = sortOrder == "Rating" ? "Rating_desc" : "Rating";
            var user    = FindUser();
            var recipes = from all in _db.FavoriteRecipes
                          join Recipe in _db.UserFavoriteRecipes on all.Id equals Recipe.RecipeId
                          where Recipe.UserId.Equals(user)
                          select all;

            List <FavoriteRecipes> RecipeList = recipes.ToList();
            // create list of viewmodel objects to populate
            List <FavoriteRecipeViewModel> OutputList = new List <FavoriteRecipeViewModel>();

            foreach (var item in RecipeList)
            {
                FavoriteRecipeViewModel vm = new FavoriteRecipeViewModel();
                // find user favorite rating and category
                UserFavoriteRecipes ur = new UserFavoriteRecipes();

                ur = _db.UserFavoriteRecipes.Find(FindUser(), item.Id);
                if (!string.IsNullOrWhiteSpace(ur.Category))
                {
                    vm.Category = ur.Category;
                }
                vm.Rating      = ur.Rating;
                vm.Title       = item.Title;
                vm.RecipeID    = ur.RecipeId;
                vm.RecipeUrl   = item.RecipeUrl;
                vm.Ingredients = item.Ingredients;
                vm.Thumbnail   = item.Thumbnail;
                OutputList.Add(vm);
            }

            switch (sortOrder)
            {
            case "Category":
                OutputList = OutputList.OrderBy(x => x.Category).ToList();
                break;

            case "Category_desc":
                OutputList = OutputList.OrderByDescending(x => x.Category).ToList();
                break;

            case "Rating":
                OutputList = OutputList.OrderBy(x => x.Rating).ToList();
                break;

            case "Rating_desc":
                OutputList = OutputList.OrderByDescending(x => x.Rating).ToList();
                break;

            default:
                break;
            }
            return(View(OutputList));
        }
コード例 #2
0
        public async Task <IActionResult> EditFavorite(int id)
        {
            FavoriteRecipeViewModel vm = new FavoriteRecipeViewModel();
            FavoriteRecipes         fr = _db.FavoriteRecipes.Find(id);

            vm.Title       = fr.Title;
            vm.Ingredients = fr.Ingredients;
            vm.Thumbnail   = fr.Thumbnail;
            vm.RecipeUrl   = fr.RecipeUrl;
            // find user favorite rating and category
            var ur = _db.UserFavoriteRecipes.Find(FindUser(), fr.Id);

            vm.Category = ur.Category;
            vm.Rating   = ur.Rating;
            return(View(vm));
        }
コード例 #3
0
        public IActionResult DeleteFavorite(int Id)
        {
            string          user = FindUser();
            FavoriteRecipes r    = _db.FavoriteRecipes.Find(Id);
            // create primary key from values
            int currentRecipeID = r.Id;
            var ur = _db.UserFavoriteRecipes.Find(user, currentRecipeID);
            FavoriteRecipeViewModel vm = new FavoriteRecipeViewModel();

            vm.Title       = r.Title;
            vm.Ingredients = r.Ingredients;
            vm.RecipeUrl   = r.RecipeUrl;
            vm.Category    = ur.Category;
            vm.Rating      = ur.Rating;
            return(View(vm));
        }
コード例 #4
0
        public IActionResult RandomFavorite()
        {
            var user    = FindUser();
            var recipes = from r in _db.FavoriteRecipes
                          where _db.UserFavoriteRecipes.Any(x => x.UserId == user && x.RecipeId == r.Id)
                          select r;
            var randomRecipe = recipes.OrderBy(x => Guid.NewGuid()).FirstOrDefault();

            if (randomRecipe != null)
            {
                // create primary key from values
                int currentRecipeID = randomRecipe.Id;
                var ur = _db.UserFavoriteRecipes.Find(user, currentRecipeID);
                FavoriteRecipeViewModel vm = new FavoriteRecipeViewModel();

                vm.Title       = randomRecipe.Title;
                vm.Ingredients = randomRecipe.Ingredients;
                vm.RecipeUrl   = randomRecipe.RecipeUrl;
                vm.Category    = ur.Category;
                vm.Rating      = ur.Rating;
                return(View(vm));
            }
            return(View("ShowAllFavorites"));
        }