Simple pipeline pattern in Csharp
Pass integer through pipe and convert it to string at result.
var result = await Task.FromResult(3)
.Step(new MultiplyStep(multiplier))
.Step(new OptionalStep<int, int>(i => i > 10, new MultiplyStep(multiplier)))
.Step(new ConvertToStringStep());