Fork me on GitHub

How to migrate from bbv.Common

This page explains the changes we made when we renamed the project and cleaned-up its structure.

Event Broker

Renaming of subscription handlers

The built-in subscription handler were renamed because they were confusing:

State Machine

Changed syntax to build hierarchies

Old: machine.DefineHierarchyOn(SuperState, InitialLeafState, HistoryType, InitialLeafState, AnotherLeafState, YetAnotherLeafState) New: machine.DefineHierarchyOn(SuperState).WithHistoryType(HistoryType).WithInitialSubState(InitialLeafState).WithSubState(AnotherLeafState).WithSubState(YetAnotherLeafState)

Changed how multiple actions are defined to allow mixing of actions with and without access to the event argument

Old: machine.In(SomeState).On(SomeEvent).Execute(Action1, Action2) New: machine.In(SomeState).On(SomeEvent).Execute(Action1).Execute(Action2)

Entry and Exit actions can now have access to the event argument

Now it is possible to access the event argument in entry and exit actions: machine.In(SomeState).ExecuteOnEntry(argument => { ... }).ExecuteOnExit(argument => { ... })

ExceptionThrown event was removed

All exceptions are now passed to the event TransitionExceptionThrown. Therefore, you only need to listen to a single event now.

Evaluation Engine

Introduced interface IAnswerer to be compliant with Interface Segregation Principle

This new interface allows to inject an evaluation engine with just access to the Answer methods.

IO

IIOAccessFactory