public async Task <IActionResult> Details(int?id) { Recipe recipe = _context.Recipe.Include(r => r.User) .Where(r => r.RecipeID == id).FirstOrDefault(); if (id == null || recipe == null) { return(RedirectToAction(nameof(Index))); } recipe.Ingredients = _context.Ingredient.Include(i => i.Product).ThenInclude(p => p.ServingType) .Include(i => i.Product).ThenInclude(p => p.ProductStatus) .Where(i => i.RecipeID == recipe.RecipeID).ToList(); recipe.RecipeSteps = _context.RecipeSteps.Where(rs => rs.RecipeID == recipe.RecipeID).ToList(); ViewData["IsLiked"] = false; if (_SignInManager.IsSignedIn(User)) { ApplicationUser user = await _UserManager.GetUserAsync(User); RecipeUserLike recipeUserLike = _context.RecipeUserLike.Where(rul => rul.UserID == user.Id && rul.RecipeID == recipe.RecipeID).FirstOrDefault(); ViewData["IsLiked"] = recipeUserLike != null ? true : false; } return(View(recipe)); }
public async Task <IActionResult> HandleLike(int recipeID) { Recipe recipe = _context.Recipe.Where(r => r.RecipeID == recipeID).FirstOrDefault(); if (recipe != null && _SignInManager.IsSignedIn(User)) { ApplicationUser user = await _UserManager.GetUserAsync(User); RecipeUserLike recipeUserLike = _context.RecipeUserLike.Where(rul => rul.RecipeID == recipe.RecipeID && rul.UserID == user.Id).FirstOrDefault(); if (recipeUserLike == null) { recipeUserLike = new RecipeUserLike() { RecipeID = recipe.RecipeID, UserID = user.Id }; _context.Add(recipeUserLike); recipe.Likes++; ViewData["IsLiked"] = true; } else { _context.Remove(recipeUserLike); recipe.Likes--; ViewData["IsLiked"] = false; } _context.Recipe.Update(recipe); _context.SaveChanges(); } return(PartialView("_RecipeLikePartial", recipe)); }