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"));
        }
예제 #3
0
        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);
        }