public static Order Create(CustomerId customerId, IMediator mediator) { var created = new Order(OrderId.Generate(), customerId); //TODO: Publish should be executed after commiting aggregate to db.. mediator.Publish(new OrderCreated(created.Id, created.CustomerId)); return(created); }