/// <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); }
/// <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); }