public IActionResult AddToOrder(int id) { var orderId = this.contextAccessor.HttpContext.Session.GetInt32("orderid"); if (orderId == null) { return(RedirectToAction("LogOut", "Account")); } var order = this.unitOfWork.FoodOrders.Get().Include(o => o.FoodOrderItems) .FirstOrDefault(o => o.Id == orderId); var foodItem = this.unitOfWork.FoodItems.Get().FirstOrDefault(f => f.Id == id); var foodOrderItem = order.FoodOrderItems.FirstOrDefault(foi => foi.FoodItemId == id); if (foodOrderItem == null) { foodOrderItem = new FoodOrderItem { FoodItem = foodItem, FoodItemId = foodItem.Id, Quantity = 1 }; this.unitOfWork.FoodOrderItems.Insert(foodOrderItem); } else { foodOrderItem.Quantity++; this.unitOfWork.FoodOrderItems.Update(foodOrderItem); } order.FoodOrderItems.Add(foodOrderItem); this.unitOfWork.FoodOrders.Update(order); this.unitOfWork.Save(); TempData["message"] = $"Added {foodItem.Name} to order"; return(RedirectToAction("Menu", "Home")); }
public IActionResult Edit(FoodOrderItem foodOrderItem) { var quantity = foodOrderItem.Quantity; foodOrderItem = this.unitOfWork.FoodOrderItems.Get().Include(f => f.FoodItem) .FirstOrDefault(f => f.Id == foodOrderItem.Id); foodOrderItem.Quantity = quantity; this.unitOfWork.FoodOrderItems.Update(foodOrderItem); this.unitOfWork.Save(); TempData["message"] = $"Updated Quantity of {foodOrderItem.FoodItem.Name} to {quantity}"; return(RedirectToAction("Order")); }
public static Mock <IUnitOfWork> SetUpIUnitOfWork() { var unitOfWork = new Mock <IUnitOfWork>(); var food1 = new FoodItem { Id = 1, Name = "Taco", Description = "Traditional Mexican dish consisting of a small hand-sized corn or wheat tortilla topped with a filling.", Price = 3.00, ImageName = "Taco.jpg" }; var food2 = new FoodItem { Id = 2, Name = "Quesadilla", Description = "Mexican cuisine dish, consisting of a tortilla that is filled primarily with cheese, and sometimes meats, spices, and other fillings, and then cooked on a griddle or stove.", Price = 6.00, ImageName = "Quesadilla.jpg" }; var food3 = new FoodItem { Id = 3, Name = "Queso and Chips", Description = "A blend of queso cheese, peppers, and spices that's a little smoky, a little spicy, and very cheesy.", Price = 5.00, ImageName = "Queso.jpg" }; var order1 = new FoodOrder { Id = 1, UserId = "admin", OrderDateTime = DateTime.Now.AddDays(-2), IsComplete = true, FoodOrderItems = new List <FoodOrderItem>() }; var order2 = new FoodOrder { Id = 2, UserId = "admin", OrderDateTime = DateTime.Now, IsComplete = false, FoodOrderItems = new List <FoodOrderItem>() }; var orderItem1 = new FoodOrderItem { Id = 1, FoodItemId = 1, Quantity = 2, FoodOrders = new List <FoodOrder> { order1 } }; var orderItem2 = new FoodOrderItem { Id = 1, FoodItemId = 1, Quantity = 2, FoodOrders = new List <FoodOrder> { order2 } }; order1.FoodOrderItems.Add(orderItem1); order2.FoodOrderItems.Add(orderItem2); var food = new List <FoodItem> { food1, food2, food3 }; var orders = new List <FoodOrder> { order1, order2 }; var orderItems = new List <FoodOrderItem> { orderItem1, orderItem2 }; var orderRepo = new Mock <IRepository <FoodOrder> >(); var orderItemRepo = new Mock <IRepository <FoodOrderItem> >(); var foodRepo = new Mock <IRepository <FoodItem> >(); orderRepo.Setup(repo => repo.Get(null)).Returns(orders.AsQueryable()); orderItemRepo.Setup(repo => repo.Get(null)).Returns(orderItems.AsQueryable()); foodRepo.Setup(repo => repo.Get(null)).Returns(food.AsQueryable()); unitOfWork.Setup(w => w.FoodOrders).Returns(orderRepo.Object); unitOfWork.Setup(w => w.FoodOrderItems).Returns(orderItemRepo.Object); unitOfWork.Setup(w => w.FoodItems).Returns(foodRepo.Object); return(unitOfWork); }