public async Task <bool> Handle(CreateOrderCommand message, CancellationToken cancellationToken)
        {
            var address = new Address(message.Street, message.City, message.State, message.Country, message.ZipCode);
            var order   = new Aggregates.OrderAggregate.Order(message.UserId, message.UserName, address);

            foreach (var item in message.OrderItems)
            {
                order.AddOrderItem(item.ProductId, item.ProductName, item.Discount, item.UnitPrice);
            }
            await _orderRepository.InsertAsync(order, cancellationToken);

            return(await _orderRepository.UnitOfWork
                   .SaveEntitiesAsync(cancellationToken));
        }
 public OrderStartedDomainEvent(Aggregates.OrderAggregate.Order order, string userId, string userName)
 {
     Order    = order;
     UserId   = userId;
     UserName = userName;
 }