public async Task <ActionResult> AddMenuItemIngredient(int itemId, int ingredientId) { var item = await _context.MenuItem.FirstOrDefaultAsync(i => i.Id == itemId); var ingredient = await _context.Ingredient.FirstOrDefaultAsync(i => i.Id == ingredientId); if (item == null) { return(NotFound()); } else if (ingredient == null) { return(NotFound()); } MenuItemIngredients ingredients = new MenuItemIngredients() { IngredientId = ingredientId, MenuItemId = itemId, Ingredient = ingredient, MenuItem = item }; _context.MenuItemIngredients.Add(ingredients); //Add to the database var updated = await _context.SaveChangesAsync(); //Wait for database to update and get data if (updated < 1) { return(NotFound()); } return(Json(ingredient)); }
public async Task <ActionResult> RemoveMenuItemIngredient(int itemId, int ingredientId) { MenuItemIngredients newMenuItemIngredient = new MenuItemIngredients() { MenuItemId = itemId, IngredientId = ingredientId }; _context.MenuItemIngredients.Remove(newMenuItemIngredient); var update = await _context.SaveChangesAsync(); if (update < 1) { return(Json(false)); } return(Json(true)); }
/// <summary> /// Initializes the specified context. /// </summary> /// <param name="context">The context.</param> public static void Initialize(ApplicationDbContext context) { context.Database.EnsureCreated(); // This is the code used to create an Order (Creates an order with multiple number of same items right now, used for testing) /* Add Order * var Noel = context.Users.Where(x => x.Email == "*****@*****.**").FirstOrDefault(); // Account you choose to link it to * * Order MyOrder = new Order() * { * DateTime = System.DateTime.Now, * Status = Models.Status.Received, * User = Noel, * }; * * List<OrderMenuItem> TheItems = new List<OrderMenuItem>(); * for (int i = 0; i < 3; i++) * { * // The MenuItem and its AddOns are added here. So far just one MenuItem but could switch to more MenuItems * OrderMenuItem MyOrderMenuItem = new OrderMenuItem() * { * MenuItem = context.MenuItem.Include(ing => ing.MenuItemIngredients).ThenInclude(ing => ing.Ingredient).Single(m => m.Name == "Chicken Quesadilla"), * AddOns = new List<AddOn> * { * context.AddOn.SingleOrDefault(a => a.Name == "Croutons"), context.AddOn.SingleOrDefault(a => a.Name == "Pineapple") * } * }; * * // * foreach (var ing in MyOrderMenuItem.MenuItem.MenuItemIngredients) * { * if (ing.Ingredient.Name == "Sour Cream") * { * ing.Ingredient.Option = Option.None; * } * if (ing.Ingredient.Name == "Tomato") * { * ing.Ingredient.Option = Option.Low; * } * } * TheItems.Add(MyOrderMenuItem); * } * MyOrder.OrderMenuItems = TheItems; * * double Total = 0; * foreach (OrderMenuItem i in TheItems) * { * Total += i.MenuItem.Price; * foreach (AddOn j in i.AddOns) * { * Total += j.Price; * } * } * * MyOrder.TotalPrice = Total; * * string JSON = JsonConvert.SerializeObject(MyOrder.OrderMenuItems); * * OrderInfo MyOrderInfo = new OrderInfo() * { * DateTime = MyOrder.DateTime, * Status = MyOrder.Status, * TotalPrice = MyOrder.TotalPrice, * User = MyOrder.User, * OrderMenuItems = JSON * }; * * context.OrderInfo.Add(MyOrderInfo); * context.SaveChanges(); * * /*OrderMenuItem AllMenuItems = new OrderMenuItem() * { * MenuItem = context.MenuItem.Include(i => i.MenuItemIngredients).Single(m => m.Name == "Cowboy Burger"), * AddOns = new List<AddOn> * { * context.AddOn.Single(a => a.Name == "Avocado"), context.AddOn.Single(a => a.Name == "Jalapenos") * } * }; * * double total = AllMenuItems.MenuItem.Price; * foreach (AddOn ao in AllMenuItems.AddOns) * { * total += ao.Price; * } * * List<OrderMenuItem> ListOfOMI = new List<OrderMenuItem> { AllMenuItems }; * * var json = JsonConvert.SerializeObject(ListOfOMI); * * OrderInfo DBOrder = new OrderInfo() * { * User = Noel, * DateTime = System.DateTime.Now, * Status = Models.Status.Received, * TotalPrice = total, * OrderMenuItems = json * }; * * context.OrderInfo.Add(DBOrder);*/ // Beginning to add a complete set of dummy data if (context.Category.Any()) { return; } // Categories // ----------------------------------------------------- var categories = new Category[] { new Category { Name = "Appetizers" }, new Category { Name = "Entrees" } }; foreach (Category c in categories) { context.Category.Add(c); } context.SaveChanges(); // Subcategories // ----------------------------------------------------- var subcategories = new Subcategory[] { new Subcategory { Name = "Finger Food", CategoryId = categories.Single(i => i.Name == "Appetizers").Id }, new Subcategory { Name = "Small Portions", CategoryId = categories.Single(i => i.Name == "Appetizers").Id }, new Subcategory { Name = "Burgers", CategoryId = categories.Single(i => i.Name == "Entrees").Id }, new Subcategory { Name = "Soups", CategoryId = categories.Single(i => i.Name == "Entrees").Id } }; foreach (Subcategory s in subcategories) { context.Subcategory.Add(s); } SaveChanges(context); // Addons // ----------------------------------------------------- var addons = new AddOn[] { new AddOn { Name = "Jalapenos", Price = .75, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new AddOn { Name = "Avocado", Price = .90, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new AddOn { Name = "Pineapple", Price = .75, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new AddOn { Name = "Bacon", Price = 1.25, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new AddOn { Name = "Rice", Price = .50, SubcategoryId = subcategories.Single(i => i.Name == "Soups").Id }, new AddOn { Name = "Bacon pieces", Price = .75, SubcategoryId = subcategories.Single(i => i.Name == "Soups").Id }, new AddOn { Name = "Croutons", Price = .75, SubcategoryId = subcategories.Single(i => i.Name == "Soups").Id }, }; foreach (AddOn a in addons) { context.AddOn.Add(a); } context.SaveChanges(); // MenuItems // ----------------------------------------------------- var menuitems = new MenuItem[] { new MenuItem { Name = "Cowboy Burger", Price = 9.99, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new MenuItem { Name = "Wildcat Burger", Price = 11.99, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new MenuItem { Name = "Banzai Burger", Price = 7.99, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new MenuItem { Name = "Bleu Ribbon Burger", Price = 10.99, SubcategoryId = subcategories.Single(i => i.Name == "Burgers").Id }, new MenuItem { Name = "Tomato Soup", Price = 7.99, SubcategoryId = subcategories.Single(i => i.Name == "Soups").Id }, new MenuItem { Name = "Zuppa Toscana", Price = 9.99, SubcategoryId = subcategories.Single(i => i.Name == "Soups").Id }, new MenuItem { Name = "Nachos", Price = 4.99, SubcategoryId = subcategories.Single(i => i.Name == "Finger Food").Id }, new MenuItem { Name = "Chicken Quesadilla", Price = 5.99, SubcategoryId = subcategories.Single(i => i.Name == "Finger Food").Id }, new MenuItem { Name = "Fruit Bowl", Price = 2.99, SubcategoryId = subcategories.Single(i => i.Name == "Small Portions").Id }, new MenuItem { Name = "Greek Yogurt", Price = 2.95, SubcategoryId = subcategories.Single(i => i.Name == "Small Portions").Id }, }; foreach (MenuItem m in menuitems) { context.MenuItem.Add(m); } context.SaveChanges(); // Ingredients // ----------------------------------------------------- var ingredients = new Ingredient[] { new Ingredient { Name = "Mayo", Option = Option.Normal }, new Ingredient { Name = "Lettuce", Option = Option.Normal }, new Ingredient { Name = "Tomato", Option = Option.Normal }, new Ingredient { Name = "Onions", Option = Option.Normal }, new Ingredient { Name = "Jalapenos", Option = Option.Normal }, new Ingredient { Name = "Olives", Option = Option.Normal }, new Ingredient { Name = "Cheddar Cheese", Option = Option.Normal }, new Ingredient { Name = "Pickles", Option = Option.Normal }, new Ingredient { Name = "Pineapples", Option = Option.Normal }, new Ingredient { Name = "Sour Cream", Option = Option.Normal }, new Ingredient { Name = "Mushrooms", Option = Option.Normal }, new Ingredient { Name = "Black Beans", Option = Option.Normal }, new Ingredient { Name = "Bleu Cheese", Option = Option.Normal }, }; foreach (Ingredient i in ingredients) { context.Ingredient.Add(i); } // MenuItemIngredients // ----------------------------------------------------- var menuItemIngredients = new MenuItemIngredients[] { new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Cowboy Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Lettuce").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Cowboy Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Mayo").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Cowboy Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Tomato").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Cowboy Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Onions").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Cowboy Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Pickles").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Cowboy Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Cheddar Cheese").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Wildcat Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Tomato").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Wildcat Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Lettuce").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Wildcat Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Jalapenos").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Wildcat Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Mushrooms").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Wildcat Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Cheddar Cheese").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Banzai Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Pineapples").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Banzai Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Cheddar Cheese").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Banzai Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Lettuce").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Banzai Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Tomato").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Banzai Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Mayo").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Bleu Ribbon Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Mayo").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Bleu Ribbon Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Tomato").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Bleu Ribbon Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Lettuce").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Bleu Ribbon Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Onions").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Bleu Ribbon Burger").Id, IngredientId = ingredients.Single(i => i.Name == "Bleu Cheese").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Chicken Quesadilla").Id, IngredientId = ingredients.Single(i => i.Name == "Jalapenos").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Chicken Quesadilla").Id, IngredientId = ingredients.Single(i => i.Name == "Olives").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Chicken Quesadilla").Id, IngredientId = ingredients.Single(i => i.Name == "Onions").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Chicken Quesadilla").Id, IngredientId = ingredients.Single(i => i.Name == "Tomato").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Chicken Quesadilla").Id, IngredientId = ingredients.Single(i => i.Name == "Sour Cream").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Nachos").Id, IngredientId = ingredients.Single(i => i.Name == "Olives").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Nachos").Id, IngredientId = ingredients.Single(i => i.Name == "Onions").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Nachos").Id, IngredientId = ingredients.Single(i => i.Name == "Tomato").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Nachos").Id, IngredientId = ingredients.Single(i => i.Name == "Black Beans").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Nachos").Id, IngredientId = ingredients.Single(i => i.Name == "Sour Cream").Id }, new MenuItemIngredients { MenuItemId = menuitems.Single(m => m.Name == "Nachos").Id, IngredientId = ingredients.Single(i => i.Name == "Jalapenos").Id } }; foreach (MenuItemIngredients m in menuItemIngredients) { var inDatabase = context.MenuItemIngredients.Where(x => x.Ingredient.Id == m.IngredientId && x.MenuItem.Id == m.MenuItemId).SingleOrDefault(); if (inDatabase == null) { context.MenuItemIngredients.Add(m); } } SaveChanges(context); }