public async Task <Stateflow <Bar, BarState, BarAction> > GetStateflowAsync(Guid entityId, CancellationToken cancellationToken) { var entity = _repository.Get(entityId); if (entity == null) { throw new InvalidOperationException("Entity not found"); } var stateMachine = await _stateMachineProvider.GetStateMachineAsync(entity, cancellationToken); return(new Stateflow <Bar, BarState, BarAction>(entity, stateMachine)); }
public static Task <IStateMachine <EFooState, EFooAction> > GetStateMachineAsync( this IStateMachineProvider provider, Foo entity, CancellationToken cancellationToken ) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (entity == null) { throw new ArgumentNullException(nameof(entity)); } return(provider.GetStateMachineAsync <Foo, EFooState, EFooAction>( entity, x => x.State, (x, state) => x.ChangeState(state), cancellationToken )); }