Dumplie\Customer\Application\Command\PlaceOrderHandler::handle PHP Method

handle() public method

public handle ( PlaceOrder $command )
$command PlaceOrder
    public function handle(PlaceOrder $command)
    {
        $cartId = new CartId($command->cartId());
        $orderId = new OrderId($command->orderId());
        if ($this->orders->exists($orderId)) {
            throw OrderAlreadyExistsException::withId($orderId);
        }
        $checkout = $this->checkouts->getForCart($cartId);
        $order = $checkout->placeOrder($orderId, $this->products, $this->carts);
        $this->orders->add($order);
        $this->checkouts->removeForCart($cartId);
        $this->carts->remove($cartId);
        $this->eventLog->log(new CustomerPlacedOrder((string) $orderId));
    }
PlaceOrderHandler