├── .github └── workflows │ └── dotnet.yml ├── .gitignore ├── AUTHORS.txt ├── CONTRIBUTING.md ├── Codestyle.dotsettings ├── Directory.Build.props ├── Directory.Build.targets ├── LICENSE ├── README.md ├── StateTransition.sln ├── StateTransition.sln.DotSettings ├── api-structure.png ├── benchmark └── StateTransition.Benchmark │ ├── OpenClosedStateMachine.cs │ ├── Program.cs │ └── StateTransition.Benchmark.csproj ├── logo.png ├── sample └── StateTransition.AbcSample │ ├── AbcStateMachine.cs │ ├── Program.cs │ └── StateTransition.AbcSample.csproj ├── src └── StateTransition │ ├── FireTransitionRequests │ ├── AutofireRequest.cs │ ├── BaseFireRequest.cs │ ├── FireByStateRequest.cs │ └── FireByTriggerRequest.cs │ ├── State.cs │ ├── StateMachine.cs │ ├── StateTransition.csproj │ ├── StateTransition.csproj.DotSettings │ ├── StateTransitionManager.cs │ ├── Transitions │ ├── AmbiguousStateConfigurationException.cs │ ├── BaseTransitionOptions.cs │ ├── StateNotConfiguredException.cs │ ├── Transition.cs │ ├── TransitionException.cs │ ├── TransitionGuard.cs │ └── TransitionMiddlewareHandler.cs │ └── Triggers │ ├── AmbiguousTriggerStateResolverException.cs │ ├── BaseTriggerStateResolver.cs │ ├── ITransitionAction.cs │ ├── TransitionActionTriggerStateResolver.cs │ ├── TransitionTriggerStateResolver.cs │ └── TriggerStateResolverNotFoundException.cs └── tests └── StateTransition.UnitTests ├── StateMachineTests.Model.cs ├── StateMachineTests.cs └── StateTransition.UnitTests.csproj /.github/workflows/dotnet.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/.github/workflows/dotnet.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/.gitignore -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/AUTHORS.txt -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Codestyle.dotsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/Codestyle.dotsettings -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/Directory.Build.props -------------------------------------------------------------------------------- /Directory.Build.targets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/Directory.Build.targets -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/README.md -------------------------------------------------------------------------------- /StateTransition.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/StateTransition.sln -------------------------------------------------------------------------------- /StateTransition.sln.DotSettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/StateTransition.sln.DotSettings -------------------------------------------------------------------------------- /api-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/api-structure.png -------------------------------------------------------------------------------- /benchmark/StateTransition.Benchmark/OpenClosedStateMachine.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/benchmark/StateTransition.Benchmark/OpenClosedStateMachine.cs -------------------------------------------------------------------------------- /benchmark/StateTransition.Benchmark/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/benchmark/StateTransition.Benchmark/Program.cs -------------------------------------------------------------------------------- /benchmark/StateTransition.Benchmark/StateTransition.Benchmark.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/benchmark/StateTransition.Benchmark/StateTransition.Benchmark.csproj -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/logo.png -------------------------------------------------------------------------------- /sample/StateTransition.AbcSample/AbcStateMachine.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/sample/StateTransition.AbcSample/AbcStateMachine.cs -------------------------------------------------------------------------------- /sample/StateTransition.AbcSample/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/sample/StateTransition.AbcSample/Program.cs -------------------------------------------------------------------------------- /sample/StateTransition.AbcSample/StateTransition.AbcSample.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/sample/StateTransition.AbcSample/StateTransition.AbcSample.csproj -------------------------------------------------------------------------------- /src/StateTransition/FireTransitionRequests/AutofireRequest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/FireTransitionRequests/AutofireRequest.cs -------------------------------------------------------------------------------- /src/StateTransition/FireTransitionRequests/BaseFireRequest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/FireTransitionRequests/BaseFireRequest.cs -------------------------------------------------------------------------------- /src/StateTransition/FireTransitionRequests/FireByStateRequest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/FireTransitionRequests/FireByStateRequest.cs -------------------------------------------------------------------------------- /src/StateTransition/FireTransitionRequests/FireByTriggerRequest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/FireTransitionRequests/FireByTriggerRequest.cs -------------------------------------------------------------------------------- /src/StateTransition/State.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/State.cs -------------------------------------------------------------------------------- /src/StateTransition/StateMachine.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/StateMachine.cs -------------------------------------------------------------------------------- /src/StateTransition/StateTransition.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/StateTransition.csproj -------------------------------------------------------------------------------- /src/StateTransition/StateTransition.csproj.DotSettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/StateTransition.csproj.DotSettings -------------------------------------------------------------------------------- /src/StateTransition/StateTransitionManager.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/StateTransitionManager.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/AmbiguousStateConfigurationException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/AmbiguousStateConfigurationException.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/BaseTransitionOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/BaseTransitionOptions.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/StateNotConfiguredException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/StateNotConfiguredException.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/Transition.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/Transition.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/TransitionException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/TransitionException.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/TransitionGuard.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/TransitionGuard.cs -------------------------------------------------------------------------------- /src/StateTransition/Transitions/TransitionMiddlewareHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Transitions/TransitionMiddlewareHandler.cs -------------------------------------------------------------------------------- /src/StateTransition/Triggers/AmbiguousTriggerStateResolverException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Triggers/AmbiguousTriggerStateResolverException.cs -------------------------------------------------------------------------------- /src/StateTransition/Triggers/BaseTriggerStateResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Triggers/BaseTriggerStateResolver.cs -------------------------------------------------------------------------------- /src/StateTransition/Triggers/ITransitionAction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Triggers/ITransitionAction.cs -------------------------------------------------------------------------------- /src/StateTransition/Triggers/TransitionActionTriggerStateResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Triggers/TransitionActionTriggerStateResolver.cs -------------------------------------------------------------------------------- /src/StateTransition/Triggers/TransitionTriggerStateResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Triggers/TransitionTriggerStateResolver.cs -------------------------------------------------------------------------------- /src/StateTransition/Triggers/TriggerStateResolverNotFoundException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/src/StateTransition/Triggers/TriggerStateResolverNotFoundException.cs -------------------------------------------------------------------------------- /tests/StateTransition.UnitTests/StateMachineTests.Model.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/tests/StateTransition.UnitTests/StateMachineTests.Model.cs -------------------------------------------------------------------------------- /tests/StateTransition.UnitTests/StateMachineTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/tests/StateTransition.UnitTests/StateMachineTests.cs -------------------------------------------------------------------------------- /tests/StateTransition.UnitTests/StateTransition.UnitTests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozontech/state-transition/HEAD/tests/StateTransition.UnitTests/StateTransition.UnitTests.csproj --------------------------------------------------------------------------------