View on GitHub
Clean Architecture Toolkit for .NET
Clean Architecture Toolkit is a clean, modular architecture foundation for .NET applications.
It embraces SOLID principles and focuses on maintainability, testability, and scalability through clear boundaries and pluggable design.

|   HOME   |   MODULE OVERVIEW   |   DEMO   |   CAT.FLUENTWORKFLOWS   |

Code Reference

» Cat.FluentWorkflows.Abstractions Assembly

Cat.FluentWorkflows.Abstractions Namespace

Defines the contracts for fluent workflows: workflows and their state, the builder you describe steps with, the step bodies that do the work, and the processors that run them.

Interfaces  
ICatForeachState<TCollection,TWorkflowState> The state of the steps inside a foreach. It holds the current item and the state of the workflow around the loop.
ICatHasSubWorkflowState<TSubWorkflowState> Marks a workflow state that carries the state for a sub-workflow.
ICatStepBodyAsync The code of one step. Derive from CatStepBody or CatStepBodyAsync instead of implementing this yourself.
ICatStepBodyWithState<TWorkflowState> Marks a step body that wants the state of the workflow. The step processor sets it before the step runs.
ICatStepBuilder<TWorkflowState,TStepBody> Connects a step to the workflow state. Inputs go from the state into the step before it runs. Outputs go from the step back into the state after it ran.
ICatStepParameter One input or output of a step.
ICatStepProcessor Runs a list of steps one by one. Steps like if and foreach use it to run their own inner steps.
ICatSwitchCaseBuilder<TWorkflowState,TSwitchValue> Describes the cases of a switch step.
ICatWorkflow<TWorkflowState> Describes one workflow: the steps to run, in order. Implement it once per workflow. The module finds and registers it for you.
ICatWorkflowBuilder<TWorkflowState> Collects the steps of a workflow. You get one in Build(ICatWorkflowBuilder<TWorkflowState>). The steps themselves are extension methods in Cat.FluentWorkflows.Extensions. Each one adds a step to WorkflowSteps, and the steps run in the order they were added.
ICatWorkflowProcessor Single entry point for running a workflow.
ICatWorkflowResponse The outcome of a step or a workflow: what to do next, and the errors if something failed.
ICatWorkflowState<TWorkflowState> Marks the class that holds the data of a workflow. Steps read from it and write to it. Implement it with the class itself as the type argument, like class OrderState : ICatWorkflowState<OrderState>.
ICatWorkflowStep One step in a workflow: the step body to run and how it connects to the state.
Enums  
CatStepExecutionResult Tells the step processor what to do after a step. Every step returns one inside its workflow response.