public void FireEvent <T>(T ev, IQualifiers qualifiers) { foreach (var observer in ResolveObservers(typeof(T), qualifiers)) { observer.Notify(ev); } }
public ObserverResolvable(Type eventType, IQualifiers qualifiers) { EventType = eventType; Qualifiers = qualifiers; }
public IEnumerable <EventObserverMethod> ResolveObservers(Type eventType, IQualifiers qualifiers) { return(_observerResolver.Resolve(new ObserverResolvable(eventType, qualifiers))); }
public ExceptionHandlingContext(IInvocationContext invocationContext, Exception exception, IQualifiers qualifiers) { InvocationContext = invocationContext; Exception = exception; Qualifiers = qualifiers; }
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; } } }
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); }
public bool CanSatisfy(IQualifiers qualifiers) { return(qualifiers.Types.All(Types.Contains)); }
public ComponentResolvable(Type type, IQualifiers qualifiers) { Type = type; Qualifiers = qualifiers; }