public async Task <IActionResult> PutIngredients(long id, Ingredients ingredients) { if (id != ingredients.IngredientsId) { return(BadRequest()); } _context.Entry(ingredients).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!IngredientsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutMealPlan(long id, MealPlan mealPlan) { if (id != mealPlan.MealId) { return(BadRequest()); } _context.Entry(mealPlan).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MealPlanExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Create([Bind("Title,Description,PrepTime,CookTime,Calories,NumServings,Course,Cuisine,Author,Ingredients_Quantity,Ingredients_Unit,Ingredient,Id,TotalTime")] Recipe recipe) { if (ModelState.IsValid) { _context.Add(recipe); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(recipe)); }
public async Task Create(Recipe recipe, IFormFile RecipeImage) { recipe.LastViewed = DateTime.Now; Image image = new Image() { DataUrl = GetImage(recipe.Name) }; image.Recipes.Add(recipe); using MealPlannerContext context = new MealPlannerContext(_dbOptions); if (RecipeImage != null) { using var stream = new MemoryStream(); RecipeImage.CopyTo(stream); Image recipeImage = new Image() { Data = stream.ToArray() }; recipeImage.RecipeLists.Add(recipe); context.Images.Add(recipeImage); } context.Images.Add(image); context.Add(recipe); await context.SaveChangesAsync(); }
public async Task Delete(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var recipeCategory = await context.RecipeCategories.SingleOrDefaultAsync(m => m.Id == id); context.RecipeCategories.Remove(recipeCategory); await context.SaveChangesAsync(); }
public async Task <int> Create(MealGroup group) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); context.MealGroups.Add(group); await context.SaveChangesAsync(); return(group.Id); }
public async Task Delete(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var store = await context.Stores.SingleOrDefaultAsync(m => m.Id == id); context.Stores.Remove(store); await context.SaveChangesAsync(); }
public async Task DeleteIngredient(int id) { var ingredient = await GetIngredient(id); using MealPlannerContext context = new MealPlannerContext(_dbOptions); context.Ingredients.Remove(ingredient); await context.SaveChangesAsync(); }
public async Task CreateIngredient(Ingredient ingredient) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); ingredient.Order = await GetMaxOrder() + 1; context.Add(ingredient); await context.SaveChangesAsync(); }
private async Task DecrementOrder(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var ingredient = await context.Ingredients.FindAsync(id); ingredient.Order--; context.Entry(ingredient).State = EntityState.Modified; await context.SaveChangesAsync(); }
public async Task UpdateImage(EditImageModel model) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var image = await GetRecipeDisplayImage(model.RecipeId); image.DataUrl = GetImage(model.ImageSearch); context.Update(image); await context.SaveChangesAsync(); }
public async Task UpdateViewedDate(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var recipe = await context.Recipes.FindAsync(id); recipe.LastViewed = DateTime.Now; context.Recipes.Update(recipe); await context.SaveChangesAsync(); }
public async Task UpdateRecipe(int recipeId) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var recipe = await context.Recipes.SingleOrDefaultAsync(r => r.Id == recipeId); recipe.LastViewed = DateTime.Now; context.Update(recipe); await context.SaveChangesAsync(); }
public async Task CreateItem(ShoppingListItem item) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); if (item.Order == 0) { item.Order = (await GetMaxItemOrder()) + 1; } context.ShoppingListItems.Add(item); await context.SaveChangesAsync(); }
public async Task RemovePlan(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var plan = await context.MealPlans .SingleOrDefaultAsync(x => x.Id == id); using (var conn = new SqlConnection(_config.GetConnectionString("MealPlannerContext"))) conn.Execute("DELETE FROM SideRelationships WHERE MealPlanId = @mealPlanId", new { mealPlanId = plan.Id }); context.MealPlans.Remove(plan); await context.SaveChangesAsync(); }
public async Task ClearAllShoppingItems() { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var checkedItems = await context.ShoppingListItems .ToArrayAsync(); for (int i = 0; i < checkedItems.Length; i++) { context.ShoppingListItems.Remove(checkedItems[i]); } await context.SaveChangesAsync(); }
public async Task ResetIngredientOrderAlphabetically() { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var ingredients = await context.Ingredients.OrderBy(x => x.Name).ToArrayAsync(); for (int i = 0; i < ingredients.Length; i++) { ingredients[i].Order = i + 1; context.Update(ingredients[i]); } await context.SaveChangesAsync(); }
public async Task <int?> Delete(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var recipeDetail = await context.RecipeDetails.SingleOrDefaultAsync(m => m.Id == id); var recipeId = recipeDetail.RecipeId; context.RecipeDetails.Remove(recipeDetail); await context.SaveChangesAsync(); return(recipeId); }
public async Task <ShoppingListItem> CreateBlankEntry() { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var item = new ShoppingListItem { Order = await GetMaxItemOrder() + 1 }; context.ShoppingListItems.Add(item); await context.SaveChangesAsync(); return(item); }
private async Task IncreaseItemOrders(int startOrder, int excludeId) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var itemsToUpdate = await context.ShoppingListItems .Where(x => x.Order >= startOrder && x.Id != excludeId) .ToListAsync(); foreach (var item in itemsToUpdate) { item.Order++; context.Update(item); } await context.SaveChangesAsync(); }
public async Task AddPlan(MealPlan plan) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var sides = plan.SideRecipes.ToArray(); for (int i = 0; i < sides.Length; i++) { if (sides[i].RecipeId == 0) { plan.SideRecipes.Remove(sides[i]); } } context.MealPlans.Add(plan); await context.SaveChangesAsync(); }
public async Task Delete(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var group = await context.MealGroups .Include(x => x.MealPlans) .SingleOrDefaultAsync(x => x.Id == id); var plans = group.MealPlans.ToArray(); for (int i = 0; i < plans.Length; i++) { context.MealPlans.Remove(plans[i]); } context.MealGroups.Remove(group); await context.SaveChangesAsync(); }
public async Task ClearAllPlans() { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var mealPlans = await context.MealPlans.Include(x => x.SideRecipes).ToArrayAsync(); for (int i = 0; i < mealPlans.Length; i++) { var sideArray = mealPlans[i].SideRecipes.ToArray(); for (int j = 0; i < sideArray.Length; j++) { mealPlans[i].SideRecipes.Remove(sideArray[j]); } context.MealPlans.Remove(mealPlans[i]); } await context.SaveChangesAsync(); }
public async Task <bool> RemoveItem(int id) { try { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var item = await context.ShoppingListItems.FindAsync(id); context.ShoppingListItems.Remove(item); await context.SaveChangesAsync(); return(true); } catch { return(false); } }
public async Task Delete(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var recipe = await context.Recipes .Include(m => m.Image) .Include(m => m.RecipeImage) .SingleOrDefaultAsync(m => m.Id == id); context.Images.Remove(recipe.Image); if (recipe.RecipeImage != null) { context.Images.Remove(recipe.RecipeImage); } context.Recipes.Remove(recipe); await context.SaveChangesAsync(); }
public async Task Update(Recipe recipe, IFormFile RecipeImage) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); if (RecipeImage != null) { using var stream = new MemoryStream(); RecipeImage.CopyTo(stream); Image recipeImage = new Image() { Data = stream.ToArray() }; recipeImage.RecipeLists.Add(recipe); context.Images.Add(recipeImage); } context.Update(recipe); await context.SaveChangesAsync(); }
public async Task RemovePlan(int id) { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var p = await context.MealPlans .Where(x => x.Id == id) .Include(x => x.SideRecipes) .SingleOrDefaultAsync(); var sideArray = p.SideRecipes.ToArray(); for (int i = 0; i < sideArray.Length; i++) { p.SideRecipes.Remove(sideArray[i]); } context.MealPlans.Remove(p); await context.SaveChangesAsync(); }
public async Task <bool> UpdateIngredientOrder(int ingredientId, int?previousIngredientId, int?nextIngredientId) { try { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var ingredientTask = context.Ingredients.SingleOrDefaultAsync(x => x.Id == ingredientId); var previousOrderTask = GetIngredientOrder(previousIngredientId); var nextOrderTask = GetIngredientOrder(nextIngredientId); await Task.WhenAll(ingredientTask, previousOrderTask, nextOrderTask); var ingredient = ingredientTask.Result; var previousOrder = previousOrderTask.Result; var nextOrder = nextOrderTask.Result; int stopOrder = ingredient.Order; if (previousOrder.HasValue && ingredient.Order >= previousOrder) { ingredient.Order = previousOrder.Value + 1; } else if (nextOrder.HasValue) { ingredient.Order = nextOrder.Value - 1 > 0 ? nextOrder.Value : 1; } else { ingredient.Order = previousOrder.Value;//set to the last row } if (stopOrder == ingredient.Order) { return(true); } context.Entry(ingredient).State = EntityState.Modified; await context.SaveChangesAsync();//needs to happen first await UpdateAffectedSequences(ingredient.Order, ingredient.Id, stopOrder); return(true); } catch { return(false); } }
public async Task UpdatePlan(MealPlan plan) { using (var conn = new SqlConnection(_config.GetConnectionString("MealPlannerContext"))) conn.Execute("DELETE FROM SideRelationships WHERE MealPlanId = @mealPlanId", new { mealPlanId = plan.Id }); var sides = plan.SideRecipes.ToArray(); for (int i = 0; i < sides.Length; i++) { if (sides[i].RecipeId == 0) { plan.SideRecipes.Remove(sides[i]); } } using MealPlannerContext context = new MealPlannerContext(_dbOptions); context.MealPlans.Update(plan); await context.SaveChangesAsync(); }
public async Task <bool> UpdateShoppingItem(int id, string value) { try { using MealPlannerContext context = new MealPlannerContext(_dbOptions); var item = await context.ShoppingListItems .Where(x => x.Id == id) .SingleOrDefaultAsync(); item.Name = value; context.Update(item); await context.SaveChangesAsync(); return(true); } catch { return(false); } }