Ejemplo n.º 1
0
 public void FireEvent <T>(T ev, IQualifiers qualifiers)
 {
     foreach (var observer in ResolveObservers(typeof(T), qualifiers))
     {
         observer.Notify(ev);
     }
 }
Ejemplo n.º 2
0
 public ObserverResolvable(Type eventType, IQualifiers qualifiers)
 {
     EventType  = eventType;
     Qualifiers = qualifiers;
 }
Ejemplo n.º 3
0
 public IEnumerable <EventObserverMethod> ResolveObservers(Type eventType, IQualifiers qualifiers)
 {
     return(_observerResolver.Resolve(new ObserverResolvable(eventType, qualifiers)));
 }
Ejemplo n.º 4
0
 public ExceptionHandlingContext(IInvocationContext invocationContext, Exception exception, IQualifiers qualifiers)
 {
     InvocationContext = invocationContext;
     Exception         = exception;
     Qualifiers        = qualifiers;
 }
Ejemplo n.º 5
0
        private void DispatchSpecificException <T>(T exception, ExceptionHandlingContext context, IQualifiers qualifiers) where T : Exception
        {
            var caught   = new CaughtException <T>(exception, context);
            var handlers = _handlerResolver.Resolve(new ObserverResolvable(caught.GetType(), qualifiers));

            foreach (var handler in handlers)
            {
                context.IsMarkedHandled = context.IsMarkedHandled ?? true;

                handler.Notify(caught);
                if (caught.IsMarkedHandled)
                {
                    break;
                }
            }
        }
Ejemplo n.º 6
0
        private void DispatchCauses(Exception exception, ExceptionHandlingContext context, IQualifiers qualifiers)
        {
            if (context.StopsHandling)
            {
                return;
            }

            if (exception.InnerException != null)
            {
                DispatchCauses(exception.InnerException, context, qualifiers);
                if (context.StopsHandling)
                {
                    return;
                }
            }

            DispatchSpecificException((dynamic)exception, context, qualifiers);
        }
Ejemplo n.º 7
0
 public bool CanSatisfy(IQualifiers qualifiers)
 {
     return(qualifiers.Types.All(Types.Contains));
 }
Ejemplo n.º 8
0
 public ComponentResolvable(Type type, IQualifiers qualifiers)
 {
     Type       = type;
     Qualifiers = qualifiers;
 }