public EventHandlerNotFoundException(EntityBase entity, DomainEvent @event)
     : base(GetErrorMessage(entity, @event))
 {
 }
 void IEntity.ApplyEvent(DomainEvent @event)
 {
     ApplyEvent(@event);
 }
 private static string GetErrorMessage(EntityBase entity, DomainEvent @event)
 {
     return String.Format("Unable to locate an event handler for {0} on {1}", @event.GetType().FullName, entity.GetType().FullName);
 }
        protected virtual void ApplyEvent(DomainEvent @event)
        {
            try
            {
                var eventType = @event.GetType();

                if(eventType.GetCustomAttribute<EventDoesNotMutateStateAttribute>() == null)
                {
                    eventHandlers[eventType].Invoke(@event);
                }
            }
            catch (TargetInvocationException ex)
            {
                throw new EventHandlerInvocationException(this, @event, ex);
            }
            catch (KeyNotFoundException)
            {
                throw new EventHandlerNotFoundException(this, @event);
            }
        }
 protected virtual void RaiseEvent(DomainEvent @event)
 {
     ApplyEvent(@event);
     SaveEvent(@event);
 }
 internal abstract void SaveEvent(DomainEvent @event);
 public EventHandlerInvocationException(EntityBase entity, DomainEvent @event, TargetInvocationException ex)
     : base(GetErrorMessage(entity, @event), ex.InnerException ?? ex)
 {
 }
 private static string GetErrorMessage(EntityBase entity, DomainEvent @event)
 {
     return String.Format("An error occured while invoking event handler {0} on {1}", @event.GetType().FullName, entity.GetType().FullName);
 }
Ejemplo n.º 9
0
 public EventHandlerNotFoundException(EntityBase entity, DomainEvent @event)
     : base(GetErrorMessage(entity, @event))
 {
 }
Ejemplo n.º 10
0
 private static string GetErrorMessage(EntityBase entity, DomainEvent @event)
 {
     return(String.Format("Unable to locate an event handler for {0} on {1}", @event.GetType().FullName, entity.GetType().FullName));
 }