public async Task Invoke(IMessageContext context, MiddlewareDelegate next) { var handlers = this.configuration .HandlerMapping .GetHandlersTypes(context.Message.Value.GetType()); if (!handlers.Any()) { this.configuration.OnNoHandlerFound(context); } else { await Task.WhenAll( handlers .Select( handler => HandlerExecutor .GetExecutor(context.Message.Value.GetType()) .Execute( this.dependencyResolver.Resolve(handler), context, context.Message.Value))) .ConfigureAwait(false); } await next(context).ConfigureAwait(false); }
public async Task Invoke(IMessageContext context, MiddlewareDelegate next) { using (var scope = this.dependencyResolver.CreateScope()) { await Task.WhenAll( this.configuration .HandlerMapping .GetHandlersTypes(context.Message.GetType()) .Select(t => HandlerExecutor .GetExecutor(context.Message.GetType()) .Execute( scope.Resolver.Resolve(t), context, context.Message))) .ConfigureAwait(false); } await next(context); }
public async Task Invoke(IMessageContext context, MiddlewareDelegate next) { using (var scope = this.dependencyResolver.CreateScope()) { var handlerType = this.configuration.HandlerMapping.GetHandlerType(context.Message.GetType()); if (handlerType == null) { return; } var handler = scope.Resolver.Resolve(handlerType); await HandlerExecutor .GetExecutor(context.Message.GetType()) .Execute( handler, context, context.Message) .ConfigureAwait(false); } await next(context); }