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)); }
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)); }
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)); }
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")); }