Ejemplo n.º 1
0
        public async Task <AddResult> AddOrderItem(int orderId, OrderItemAddModel model)
        {
            if (model.Quantity < 1)
            {
                throw new RestaurantBadRequestException("A mennyiségnek pozitív számnak kell lennie!");
            }

            var menuItem = await DbContext.MenuItems.FindAsync(model.MenuItemId);

            if (menuItem == null)
            {
                throw new RestaurantNotFoundException("A megadott étel/ital nem létezik!");
            }

            var order = await DbContext.Orders.Include(o => o.OrderSession)
                        .Where(o => o.Id == orderId && o.Status == OrderStatus.Ordering && o.OrderSession.Status == OrderSessionStatus.Active)
                        .SingleOrDefaultAsync();

            if (order == null)
            {
                throw new RestaurantNotFoundException("A rendelés nem létezik vagy nem lehetséges új tételek hozzáadása!");
            }

            await StatusService.CheckRightsForStatus(order.OrderSession.Status, order.Status);

            var orderItem = DbContext.OrderItems.Add(new OrderItem()
            {
                OrderId    = orderId,
                MenuItemId = model.MenuItemId,
                Quantity   = model.Quantity,
                Comment    = model.Comment
            });

            await DbContext.SaveChangesAsync();

            return(new AddResult(orderItem.Entity.Id));
        }
 public async Task <AddResult> AddItemToOrder(int orderId, OrderItemAddModel item)
 => await OrderService.AddOrderItem(orderId, item);