/// <summary>
        /// Adds a callback filter to the send pipeline
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="callback">The callback to invoke</param>
        public static void UseSendExecuteAsync <T>(this ISendPipeConfigurator configurator, Func <SendContext <T>, Task> callback)
            where T : class
        {
            var specification = new AsyncDelegatePipeSpecification <SendContext <T> >(callback);

            configurator.AddPipeSpecification(specification);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Executes an asynchronous method on the pipe
        /// </summary>
        /// <typeparam name="TContext">The context type</typeparam>
        /// <param name="configurator">The pipe configurator</param>
        /// <param name="callback">The callback to invoke</param>
        public static void UseExecuteAsync <TContext>(this IPipeConfigurator <TContext> configurator, Func <TContext, Task> callback)
            where TContext : class, PipeContext
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            var pipeBuilderConfigurator = new AsyncDelegatePipeSpecification <TContext>(callback);

            configurator.AddPipeSpecification(pipeBuilderConfigurator);
        }