public void DeliverCommand <TCommand>(TCommand command) where TCommand : ICommand { DomainEvents.Register((DraftCreatedEvent it) => eventStore.Add(it.EntityId, it)); DomainEvents.Register( (IDomainEvent it) => { if (!(it is DraftCreatedEvent)) { eventStore.Add(command.OrganizationId, it); } }); var handler = kernel.Get <IHandleCommand <TCommand> >(new Parameter("OrganizationId", command.OrganizationId, true)); handler.Handle(command); DomainEvents.ClearCallbacks(); }
public void Before() { kernel = new StandardKernel(new Module()); eventStore = kernel.Get <EventStore>(); eventStore.Add(mainOrganizationId, new DraftCreatedEvent(mainOrganizationId, null)); bus = kernel.Get <CommandBus>(); }