public async Task <OrderModel> Handle(SubmitOrderCommand request, CancellationToken cancellationToken) { var cart = await _dbContext.Carts .Include(x => x.Books) .SingleOrDefaultAsync( x => x.Id == request.CartId, cancellationToken); if (cart == null) { throw NotFoundError.CreateForResource(nameof(Cart), request.CartId).ToException(); } var order = new Order(cart, request.PhoneNumber); await _dbContext.AddAsync(order, cancellationToken); _dbContext.Remove(cart); await _dbContext.SaveChangesAsync(cancellationToken); return(_mapper.Map <OrderModel>(order)); }