public async Task <IActionResult> Create(int id) { var user = await GetCurrentUserAsync(); if (_context.FavoriteRecipes.FirstOrDefault(fr => fr.RecipeId == id && fr.UserId == user.Id) != null) { return(RedirectToAction("Index", "Recipes")); } FavoriteRecipes favoriteRecipes = new FavoriteRecipes { RecipeId = id, Recipe = _context.Recipes.FirstOrDefault(r => r.RecipeId == id), UserId = user.Id, User = user }; if (ModelState.IsValid) { _context.Add(favoriteRecipes); _context.SaveChanges(); return(RedirectToAction("Index", "Recipes")); } return(View(favoriteRecipes)); }
public IActionResult AddToFavorites(Meal item) { FavoriteRecipes newFavorite = new FavoriteRecipes(); AspNetUsers thisUser = _context.AspNetUsers.Where(u => u.UserName == User.Identity.Name).First(); var favList = _context.FavoriteRecipes.Where(u => u.UserId == thisUser.Id).ToList(); List <string> mealIdList = new List <string>(); foreach (var meal in favList) { mealIdList.Add(meal.RecipeId); } if (mealIdList.Contains(item.idMeal)) { return(RedirectToAction("DisplayFavorite")); } else { newFavorite.UserId = thisUser.Id; newFavorite.RecipeId = item.idMeal; newFavorite.RecipeImage = item.strMealThumb; newFavorite.RecipeName = item.strMeal; if (ModelState.IsValid) { _context.FavoriteRecipes.Add(newFavorite); _context.SaveChanges(); return(RedirectToAction("DisplayFavorite")); } return(View(item)); } }
public async Task <IActionResult> Edit(int id, [Bind("FavoriteRecipesId,UserId,RecipeId")] FavoriteRecipes favoriteRecipes) { if (id != favoriteRecipes.FavoriteRecipesId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(favoriteRecipes); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FavoriteRecipesExists(favoriteRecipes.FavoriteRecipesId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["RecipeId"] = new SelectList(_context.Recipes, "RecipeId", "RecipeId", favoriteRecipes.RecipeId); ViewData["UserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", favoriteRecipes.UserId); return(View(favoriteRecipes)); }
public async Task <IActionResult> ViewRecipe(FavoriteRecipes myRecipe) { var meal = await FindFavRecipesById(myRecipe.RecipeId); var recipe = FindRecipesById(meal).Result; return(View(recipe)); }
public async Task <IActionResult> UpdateFavorite(FavoriteRecipes r) { if (ModelState.IsValid) { _db.FavoriteRecipes.Update(r); await _db.SaveChangesAsync(); } return(RedirectToAction("ShowAllFavorites")); }
public async Task <IActionResult> AddToFavorites(string title, string recipeUrl, string ingredients, string thumbnail) { FavoriteRecipes r = new FavoriteRecipes(); r.Title = title; r.RecipeUrl = recipeUrl; r.Ingredients = ingredients; r.Thumbnail = thumbnail; // retrieve current ID for favorite recipe if it exists int favoriteID = (from RecipeURL in _db.FavoriteRecipes where RecipeURL.RecipeUrl.Equals(recipeUrl) select RecipeURL.Id).FirstOrDefault(); // retrieve current ID for favorite recipe if it exists int existsInUserFavorites = 0; existsInUserFavorites = (from Recipe in _db.UserFavoriteRecipes where Recipe.RecipeId.Equals(favoriteID) select Recipe.RecipeId).FirstOrDefault(); // adds currently selected recipe to FavoriteRecipes and newly added RecipeID and UserID to UserFavoriteRecipes if (ModelState.IsValid && favoriteID == 0 && existsInUserFavorites == 0) { await _db.FavoriteRecipes.AddAsync(r); await _db.SaveChangesAsync(); var user = FindUser(); UserFavoriteRecipes f = new UserFavoriteRecipes(user, r.Id); await _db.UserFavoriteRecipes.AddAsync(f); await _db.SaveChangesAsync(); return(RedirectToAction("ShowAllFavorites")); } // if the currently selected recipe exists in database it will only add that recipeID and current UserID to UserFavoriteRecipes table if (favoriteID != 0 && existsInUserFavorites == 0) { var user = FindUser(); UserFavoriteRecipes f = new UserFavoriteRecipes(user, favoriteID); await _db.UserFavoriteRecipes.AddAsync(f); await _db.SaveChangesAsync(); return(RedirectToAction("ShowAllFavorites")); } return(RedirectToAction("ShowAllFavorites")); }
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 RemoveFavoriteByMeal(Meal meal) { AspNetUsers thisUser = _context.AspNetUsers.Where(u => u.UserName == User.Identity.Name).First(); List <FavoriteRecipes> userFavorites = _context.FavoriteRecipes.Where(u => u.UserId == thisUser.Id).ToList(); FavoriteRecipes recipeToDelete = new FavoriteRecipes(); foreach (var item in userFavorites) { if (item.RecipeId == meal.idMeal) { recipeToDelete = item; break; } } _context.FavoriteRecipes.Remove(recipeToDelete); _context.SaveChanges(); return(RedirectToAction("DisplayFavorite")); }
public async Task <IActionResult> EditFavorite(FavoriteRecipes fr, string Category, byte Rating) { // create primary key from values string currentUserID = FindUser(); int currentRecipeID = fr.Id; var ur = _db.UserFavoriteRecipes.Find(currentUserID, currentRecipeID); // adding values to selected record ur.Category = Category; ur.Rating = Rating; // necessary due to values being stored in main recipe table visible to all users fr.Category = ""; fr.Rating = null; _db.UserFavoriteRecipes.Update(ur); _db.FavoriteRecipes.Update(fr); await _db.SaveChangesAsync(); return(RedirectToAction("ShowAllFavorites")); }
public async Task <IActionResult> DeleteFavorite(FavoriteRecipes r) { var recipe = _db.UserFavoriteRecipes.Where(x => x.RecipeId == r.Id).First(); _db.UserFavoriteRecipes.Remove(recipe); string recipeID = r.Id.ToString(); int recipeIDint = int.Parse(recipeID); //setup to check other users with this recipe as favorite before deleting var count = _db.UserFavoriteRecipes.Where(x => x.RecipeId == r.Id); if (count.Count() == 1) { var recipeObject = _db.FavoriteRecipes.Where(x => x.Id == r.Id).First(); _db.FavoriteRecipes.Remove(recipeObject); } await _db.SaveChangesAsync(); return(RedirectToAction("ShowAllFavorites")); }
public IActionResult RemoveFavorite(FavoriteRecipes myRecipe) { _context.FavoriteRecipes.Remove(myRecipe); _context.SaveChanges(); return(RedirectToAction("DisplayFavorite")); }
public IActionResult UpdateFavorite(int Id) { FavoriteRecipes r = _db.FavoriteRecipes.Find(Id); return(View(r)); }