public async Task <IActionResult> OnPostAsync() { var userId = userManager.GetUserId(User); if (!ModelState.IsValid) { Cuisines = htmlHelper.GetEnumSelectList <CuisineType>(); return(Page()); } if (NewImage != null) { var image = await imageData.UploadImageAsync(NewImage); Recipe.ImageUrl = image; } // Update existing Ingredients var savedIngredients = new List <int>(); foreach (var ingredient in Recipe.Ingredients) { if (ingredient.Id > 0) { savedIngredients.Add(ingredient.Id); ingredientData.Update(ingredient); } } // Delete removed ingredients var originalRecipe = recipeData.GetById(Recipe.Id); var deletedIngredients = originalRecipe.Ingredients.Where(i => !savedIngredients.Contains(i.Id)); foreach (var deletedIngredient in deletedIngredients) { ingredientData.Delete(deletedIngredient.Id); } // Update Recipe recipeData.Update(Recipe); TempData["Message"] = "Recipe Updated."; recipeData.Commit(); return(RedirectToPage("./Detail", new { recipeId = Recipe.Id })); }
public async Task <IActionResult> OnPostAsync() { var userId = userManager.GetUserId(User); if (!ModelState.IsValid) { Cuisines = htmlHelper.GetEnumSelectList <CuisineType>(); Difficulty = htmlHelper.GetEnumSelectList <DifficultyType>(); return(Page()); } if (NewImage != null) { var image = await imageData.UploadImageAsync(NewImage); Recipe.ImageUrl = image; } Recipe.UserId = userId; recipeData.Add(Recipe); TempData["Message"] = "Recipe Added."; recipeData.Commit(); return(RedirectToPage("./Detail", new { recipeId = Recipe.Id })); }