Exemplo n.º 1
0
        public virtual void OnEvent(IActivitiEvent @event)
        {
            IEventLoggerEventHandler eventHandler = GetEventHandler(@event);

            if (eventHandler != null)
            {
                // Events are flushed when command context is closed
                ICommandContext currentCommandContext = Context.CommandContext;
                IEventFlusher   eventFlusher          = (IEventFlusher)currentCommandContext.GetAttribute(EVENT_FLUSHER_KEY);

                if (eventFlusher == null)
                {
                    eventFlusher = CreateEventFlusher();
                    if (eventFlusher == null)
                    {
                        eventFlusher = new DatabaseEventFlusher(); // Default
                    }
                    currentCommandContext.AddAttribute(EVENT_FLUSHER_KEY, eventFlusher);

                    currentCommandContext.AddCloseListener(eventFlusher);
                    currentCommandContext.AddCloseListener(new CommandContextCloseListenerAnonymousInnerClass(this));
                }

                eventFlusher.AddEventHandler(eventHandler);
            }
        }
Exemplo n.º 2
0
 protected internal virtual IEventLoggerEventHandler InstantiateEventHandler(IActivitiEvent @event, Type eventHandlerClass)
 {
     try
     {
         IEventLoggerEventHandler eventHandler = Activator.CreateInstance(eventHandlerClass) as IEventLoggerEventHandler;
         eventHandler.TimeStamp    = clock.CurrentTime;
         eventHandler.Event        = @event;
         eventHandler.ObjectMapper = objectMapper;
         return(eventHandler);
     }
     catch (Exception)
     {
         log.LogWarning("Could not instantiate " + eventHandlerClass + ", this is most likely a programmatic error");
     }
     return(null);
 }
Exemplo n.º 3
0
 public virtual void AddEventHandler(IEventLoggerEventHandler databaseEventLoggerEventHandler)
 {
     eventHandlers.Add(databaseEventLoggerEventHandler);
 }