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);