static void Main(string[] args) { var pipeline = new GenericBCPipeline <string, bool>((inputFirst, builder) => inputFirst.Step(builder, input => FindMostCommon(input)) .Step(builder, input => input.Length) .Step(builder, input => input % 2 == 1)); pipeline.Finished += res => Console.WriteLine(res); pipeline.Execute("The pipeline pattern is the best pattern"); }
public static TOutput Step <TInput, TOutput, TInputOuter, TOutputOuter> (this TInput inputType, GenericBCPipeline <TInputOuter, TOutputOuter> pipelineBuilder, Func <TInput, TOutput> step) { var pipelineStep = pipelineBuilder.GenerateStep <TInput, TOutput>(); pipelineStep.StepAction = step; return(default(TOutput)); }