2016-07-04 11 views
7

Chciałbym mieć bazę danych stanów przejściowych mojego przepływu pracy.Jak rejestrować przejścia stanu w statnie (biblioteka maszyn stanu .NET)

Gdzie jest najlepsze miejsce do aktywacji rejestrowania za pomocą Stateless? Powinno być set-up dla każdej konfiguracji State:

phoneCall.Configure(State.Connected) 
    .OnEntry(() => StartCallTimer()) 
    .OnEntry(() => Log()); 

czy istnieje jakiś sposób, aby zdefiniować go centralnie dla całego obiegu raz?

Wszelkie inne uwagi w tym zakresie są mile widziane.

Odpowiedz

10

Można użyć wyzwalacza OnTransitioned, który będzie uruchamiany przy każdym przejściu jako funkcja centralnego rejestrowania.

_stateMachine.OnTransitioned(OnTransitionedAction); 

void OnTransitionedAction(StateMachine<StateEnum, TriggerEnum>.Transition transition) { 
    TriggerEnum trigger = transition.Trigger; 
    StateEnum source = transition.Source; 
    StateEnum dest = transition.Destination; 
    // log trigger, source, destination 
} 
+0

Na początku tego nie widziałem, ponieważ nie było to wydarzenie podniesione. – granadaCoder

Powiązane problemy