Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 public abstract Task <IMediatorResult <TResult> > Apply <TMessage, TResult>(
     TMessage message,
     MediatorPipeLineDelegate <TResult> next,
     CancellationToken cancellationToken = default(CancellationToken)) where TMessage : IMessage <TResult>;
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
            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));
            }
Esempio n. 6
0
 public override Task <IMediatorResult <TResult> > Apply <TMessage, TResult>(TMessage message, MediatorPipeLineDelegate <TResult> next, CancellationToken cancellationToken = default(CancellationToken))
 {
     _containers.Enqueue(2);
     return(next(message, cancellationToken));
 }