コード例 #1
0
ファイル: Handler.cs プロジェクト: kouweizhong/EventCentric
        public void Handle(NewIncomingEvents message)
        {
            if (this.log.Verbose)
            {
                this.log.Trace($"{name} is now handling {message.IncomingEvents.Count()} message/s");
            }

            foreach (var e in message.IncomingEvents)
            {
                this.eventQueue.Enqueue(e);
            }
        }
コード例 #2
0
        public void Handle(NewIncomingEvents message)
        {
            if (this.log.Verbose)
            {
                this.log.Trace($"{name} is now handling {message.IncomingEvents.Count()} message/s");
            }

            foreach (var incomingEvent in message.IncomingEvents)
            {
                this.HandleGracefully(incomingEvent);
            }

            this.log.Trace($"{name} handled {message.IncomingEvents.Count()} message/s");
        }
コード例 #3
0
 public void Handle(NewIncomingEvents message)
 {
     foreach (var @event in message.IncomingEvents)
     {
         if (this.handlers.ContainsKey(@event.GetType()))
         {
             try
             {
                 this.state = this.handlers[@event.GetType()].Invoke(this.state, @event);
                 this.bus.Publish(new IncomingEventHasBeenProcessed(@event));
             }
             catch (Exception ex)
             {
                 var wrappedEx = new FatalErrorException($"An error ocurred while handling event of type {@event.GetType()}", ex);
                 this.bus.Publish(new FatalErrorOcurred(wrappedEx));
                 this.log.Error(wrappedEx, "Query failed");
                 throw;
             }
         }
     }
 }