// req: 11.7 public Order createFromShoppingCart(ShoppingCart shoppingCart, Consumer consumer) { Assert.notNull(shoppingCart); Assert.isTrue(shoppingCart.getId() != 0); Assert.notNull(consumer); Assert.isTrue(consumer.getId() != 0); Order result; Collection<OrderItem> orderItems; double amount; result = this.create(); // Adding OrderItems orderItems = orderItemService.createByShoppingCart(shoppingCart, result); result.setOrderItems(orderItems); // Calculate amount amount = this.amountCalculate(orderItems); result.setAmount(amount); // Adding Order to Consumer result.setConsumer(consumer); return result; }