public IPipeElement <PipeContext, TInput, TReturn> StartWithActivity <TInput, TReturn>( TInput input, IAsyncActivityStepProvider <TInput, TReturn> provider) { var context = new PipeContext(_serviceProvider); return(new StartElement <PipeContext, TInput, TReturn>(context, input, provider)); }
public static async Task <TReturn> CompleteWithAsync <TInput, TInputForNextStep, TReturn>( this IPipeElement <PipeContext, TInput, TInputForNextStep> element, IAsyncActivityStepProvider <TInputForNextStep?, TReturn> provider) { var finalStep = new FinalElement <PipeContext, TInputForNextStep, TReturn>( element.Context, element.PreviousElements.Append(element), provider); return(await finalStep.CompletePipeAsync()); }