public override Task <IMediatorResult <TResult> > Apply <TMessage, TResult>(TMessage message, MediatorPipeLineDelegate <TResult> next, CancellationToken cancellationToken = new CancellationToken()) { Assert.NotNull(message); Messages.Add(message); return(next(message, cancellationToken)); }
public Task <IMediatorResult <TResult> > ApplyFilters <TMessage, TResult>( IMediatorHandler <TMessage, TResult> handler, TMessage message, CancellationToken cancellationToken = default(CancellationToken)) where TMessage : IMessage <TResult> { var type = typeof(IEnumerable <>).MakeGenericType(typeof(MediatorFilter)); var filters = ((IEnumerable <MediatorFilter>)_serviceProvider.GetService(type)).Reverse(); MediatorPipeLineDelegate <TResult> next = (msg, token) => handler.Process(message, token); foreach (MediatorFilter filter in filters) { var next1 = next; next = (msg, token) => filter.Apply(msg, next1, token); } return(next(message, cancellationToken)); }
public abstract Task <IMediatorResult <TResult> > Apply <TMessage, TResult>( TMessage message, MediatorPipeLineDelegate <TResult> next, CancellationToken cancellationToken = default(CancellationToken)) where TMessage : IMessage <TResult>;
public override Task <IMediatorResult <TResult> > Apply <TMessage, TResult>(TMessage message, MediatorPipeLineDelegate <TResult> next, CancellationToken cancellationToken = new CancellationToken()) { var result = _validator.Validate(message); result.ThrowExceptionIfNotValid <MediatorFilterException>(); return(next(message, cancellationToken)); }
public override async Task <IMediatorResult <TResult> > Apply <TMessage, TResult>(TMessage message, MediatorPipeLineDelegate <TResult> next, CancellationToken cancellationToken = new CancellationToken()) { var realMsg = message as TestFilterMessage; if (realMsg != null) { realMsg.Results.Enqueue(1); var result = await next(message, cancellationToken); realMsg.Results.Enqueue(3); return(result); } return(await next(message, cancellationToken)); }
public override Task <IMediatorResult <TResult> > Apply <TMessage, TResult>(TMessage message, MediatorPipeLineDelegate <TResult> next, CancellationToken cancellationToken = default(CancellationToken)) { _containers.Enqueue(2); return(next(message, cancellationToken)); }