// GET: Pantry/Edit/5 public async Task <ActionResult> Edit(int id) { var food = await _context.Foods.Include(f => f.Category).Include(qu => qu.QuantityUnit) .FirstOrDefaultAsync(f => f.Id == id); var categories = await _context.Categories.Select(c => new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }).ToListAsync(); var quantityUnits = await _context.QuantityUnits.Select(qu => new SelectListItem() { Text = qu.Name, Value = qu.Id.ToString() }).ToListAsync(); var viewModel = new FoodItemFormViewModel() { FoodItemName = food.Name, Quantity = food.Quantity, CategoryOptions = categories, QuantityUnitOptions = quantityUnits.OrderBy(qu => qu.Text).ToList(), QuantityUnitId = food.QuantityUnitId.Value, Threshold = food.Threshold, FoodId = food.Id, PantryId = food.PantryId.Value, CategoryId = food.CategoryId }; return(View(viewModel)); }
public async Task <ActionResult> Create(FoodItemFormViewModel foodItem) { try { var user = await GetUserAsync(); var pantryId = user.PantryId; var food = new Food() { PantryId = pantryId, Name = foodItem.FoodItemName, CategoryId = foodItem.CategoryId, Quantity = foodItem.Quantity, QuantityUnitId = foodItem.QuantityUnitId, Threshold = foodItem.Threshold, IsThreshold = foodItem.IsThreshold }; _context.Foods.Add(food); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { return(View()); } }
// GET: Pantry/Details/5 public async Task <ActionResult> Details(int id) { var viewModel = new FoodItemFormViewModel(); var food = await _context.Foods.Include(f => f.Category).Include(u => u.QuantityUnit) .FirstOrDefaultAsync(f => f.Id == id); var user = await GetUserAsync(); viewModel.FoodId = food.Id; viewModel.Category = food.Category; viewModel.QuantityUnit = food.QuantityUnit; viewModel.FoodItemName = food.Name; viewModel.PantryId = food.PantryId.Value; viewModel.Quantity = food.Quantity; viewModel.Threshold = food.Threshold; return(View(viewModel)); }
// GET: GroceryList/Create public async Task <ActionResult> Create() { var viewModel = new FoodItemFormViewModel(); var categories = await _context.Categories.Select(c => new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }).ToListAsync(); var quantityUnits = await _context.QuantityUnits.Select(qu => new SelectListItem() { Text = qu.Name, Value = qu.Id.ToString() }).ToListAsync(); viewModel.CategoryOptions = categories; viewModel.QuantityUnitOptions = quantityUnits.OrderBy(qu => qu.Text).ToList(); return(View(viewModel)); }
public async Task <ActionResult> Edit(int id, FoodItemFormViewModel foodItem) { try { var food = await _context.Foods.Include(f => f.Category).Include(qu => qu.QuantityUnit) .FirstOrDefaultAsync(f => f.Id == id); food.Name = foodItem.FoodItemName; food.Quantity = foodItem.Quantity; food.QuantityUnitId = foodItem.QuantityUnitId; food.Threshold = foodItem.Threshold; food.CategoryId = foodItem.CategoryId; _context.Foods.Update(food); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public async Task <ActionResult> Create(FoodItemFormViewModel foodItem) { try { var user = await GetUserAsync(); var pantryId = user.PantryId; var groceryList = await _context.GroceryLists .FirstOrDefaultAsync(gl => gl.PantryId == user.PantryId); var foodMatch = await _context.Foods .FirstOrDefaultAsync(f => f.Name.Contains(foodItem.FoodItemName)); if (foodMatch == null) { var food = new Food() { PantryId = pantryId, Name = foodItem.FoodItemName, CategoryId = foodItem.CategoryId, Quantity = 0, QuantityUnitId = foodItem.QuantityUnitId, Threshold = foodItem.Threshold, IsThreshold = foodItem.IsThreshold }; _context.Foods.Add(food); await _context.SaveChangesAsync(); var groceryListFoodItem = new GroceryListFood() { FoodId = food.Id, Quantity = foodItem.Quantity, GroceryListId = groceryList.Id }; _context.GroceryListFoods.Add(groceryListFoodItem); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else { var categories = await _context.Categories.Select(c => new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }).ToListAsync(); var quantityUnits = await _context.QuantityUnits.Select(qu => new SelectListItem() { Text = qu.Name, Value = qu.Id.ToString() }).ToListAsync(); foodItem.QuantityUnitOptions = quantityUnits.OrderBy(qu => qu.Text).ToList(); foodItem.CategoryOptions = categories; foodItem.ShowDialog = true; return(View(foodItem)); } } catch (Exception ex) { return(View()); } }