コード例 #1
0
 public void ConsumeEvent(Event @event)
 {
     foreach (IEventHandler handler in eventHandlerProvider.GetEventHandlers(@event.GetType()))
     {
         handler.When(@event);
     }
 }
コード例 #2
0
ファイル: Aggregate.cs プロジェクト: joshilewis/lending
 protected virtual void When(Event @event)
 {
     //Default handler, do nothing
 }
コード例 #3
0
ファイル: Aggregate.cs プロジェクト: joshilewis/lending
 protected void RaiseEvent(Event @event)
 {
     DispatchEvent(@event);
     Version++;
     changes.Add(@event);
 }
コード例 #4
0
ファイル: Aggregate.cs プロジェクト: joshilewis/lending
 protected void ApplyEvent(Event @event)
 {
     DispatchEvent(@event);
     Version++;
 }
コード例 #5
0
ファイル: Aggregate.cs プロジェクト: joshilewis/lending
 private void DispatchEvent(Event @event)
 {
     foreach (var handler in EventRoutes.Where(x => x.HandlerType == @event.GetType()))
     {
         handler.Handle(@event);
     }
 }
コード例 #6
0
        public static void HandleEvent(Event @event)
        {
            IEventEmitter eventEmitter = DIExtensions.Container.GetInstance<IEventEmitter>();
            eventEmitter.EmitEvent(@event);

            PersistenceExtensions.OpenTransaction();
            DIExtensions.Container.GetInstance<EventDispatcher>().DispatchEvents();
            PersistenceExtensions.CommitTransaction();
        }
コード例 #7
0
 public void EmitEvent(Event @event)
 {
     eventsToEmit.Enqueue(@event);
 }