public StateMachine(ITransitionHandlerProvider transitionHandlerProvider, IScheduler scheduler) { Ensure.Argument.IsNotNull(transitionHandlerProvider, nameof(transitionHandlerProvider)); Ensure.Argument.IsNotNull(scheduler, nameof(scheduler)); this.transitionHandlerProvider = transitionHandlerProvider; this.scheduler = scheduler; StateTransitions = stateTransitions.AsObservable(); }
public StateMachine(ITransitionHandlerProvider transitionHandlerProvider, IScheduler scheduler, ISubject <Unit> delayCancellation) { Ensure.Argument.IsNotNull(transitionHandlerProvider, nameof(transitionHandlerProvider)); Ensure.Argument.IsNotNull(scheduler, nameof(scheduler)); Ensure.Argument.IsNotNull(delayCancellation, nameof(delayCancellation)); this.transitionHandlerProvider = transitionHandlerProvider; this.scheduler = scheduler; this.delayCancellation = delayCancellation; StateTransitions = stateTransitions.AsObservable(); isFrozen = false; }