Beispiel #1
0
        public async Task <IActionResult> PutOrderItemTopping(int id, OrderItemTopping orderItemTopping)
        {
            if (id != orderItemTopping.Id)
            {
                return(BadRequest());
            }

            _context.Entry(orderItemTopping).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderItemToppingExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Beispiel #2
0
        public IActionResult Checkout(string note)
        {
            var cart    = SessionHelper.GetObjectFromJson <List <OrderItemViewModel> >(HttpContext.Session, "cart");
            var orderId = SessionHelper.GetObjectFromJson <long>(HttpContext.Session, "orderId");
            var order   = _ctx.Order.FirstOrDefault(x => x.Id == orderId);
            var ordersForCustomerToday = _ctx.Order.Where(x => x.CustomerEmail == order.CustomerEmail &&
                                                          x.CreateTime.ToLocalTime().Day == DateTime.Today.Day &&
                                                          x.OrderStatusId != 2 &&
                                                          x.CommunityId != 1);

            if (ordersForCustomerToday.Count() > 1)
            {
                TempData["ErrorMessage"] = "Orders are limited to only one per day, cancel your last order if you must create a new one.";
                return(RedirectToAction("ShortendOrderView", "Home"));
            }

            ViewBag.cart = cart;

            order.Note = note;
            _ctx.SaveChanges();


            foreach (var item in cart)
            {
                var orderItem = new OrderItem
                {
                    MenuItemId = item.MenuItem.Id,
                    Quantity   = item.Quantity,
                    SizeId     = item.SizeId,
                    CreateBy   = 1,
                    UpdateBy   = 1,
                    CreateTime = DateTime.UtcNow,
                    UpdateTime = DateTime.UtcNow,
                    OrderId    = orderId
                };
                _ctx.OrderItem.Add(orderItem);
                _ctx.SaveChanges();

                foreach (var topping in item.Toppings)
                {
                    var toppingItem = new OrderItemTopping
                    {
                        OrderItemId = orderItem.Id,
                        ToppingId   = topping.Id,
                        CreateBy    = 1,
                        UpdateBy    = 1,
                        CreateTime  = DateTime.UtcNow,
                        UpdateTime  = DateTime.UtcNow
                    };
                    _ctx.OrderItemTopping.Add(toppingItem);
                }

                var orderToUpdate = _ctx.Order.First(x => x.Id == orderId);
                orderToUpdate.OrderStatusId = _ctx.OrderStatus.SingleOrDefault(x => x.Status == "Pending").Id;

                _ctx.SaveChanges();
            }
            return(RedirectToAction("OrderInfoForCustomer", "Orders"));
        }
Beispiel #3
0
        public async Task <ActionResult <OrderItemTopping> > PostOrderItemTopping(OrderItemTopping orderItemTopping)
        {
            // If orderItemId is null put code in here to create the orderItem

            Console.WriteLine($"*************************** DEBUG POST: {orderItemTopping.ToppingId}");
            Console.WriteLine($"*************************** DEBUG POST: {orderItemTopping.OrderItemId}");
            _context.OrderItemToppings.Add(orderItemTopping);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetOrderItemTopping", new { id = orderItemTopping.Id }, orderItemTopping));
        }
Beispiel #4
0
        public async Task <ActionResult <OrderItemTopping> > DeleteOrderItemTopping(OrderItemTopping OrderItemTopping)
        {
            Console.WriteLine($" ***************************************** Got here");
            Console.WriteLine($"*************************** DEBUG DELETE: side: {OrderItemTopping.Side}");
            Console.WriteLine($"*************************** DEBUG DELETE: toppingID: {OrderItemTopping.ToppingId}");
            Console.WriteLine($"*************************** DEBUG DELETE: orderItemId: {OrderItemTopping.OrderItemId}");
            var toDelete = _context.OrderItemToppings.FirstOrDefault(i => i.Side == OrderItemTopping.Side && i.ToppingId == OrderItemTopping.ToppingId && i.OrderItemId == OrderItemTopping.OrderItemId);

            if (toDelete == null)
            {
                return(NotFound());
            }

            _context.OrderItemToppings.Remove(toDelete);
            await _context.SaveChangesAsync();

            return(Ok());
        }