/// <summary> /// Func runs when performs into current state (entry into new state) based on concrete input value. /// </summary> public static StateConfiguration <TState, TInput> OnEntry <TState, TInput>(this StateConfiguration <TState, TInput> config, Action onEntry) { return(config.OnEntry((x) => { onEntry(); return Task.CompletedTask; })); }
/// <summary> /// Set condition for validation before transition to next state. This condition based on concrete input value. /// </summary> public static StateConfiguration <TState, TInput> ConditionFor <TState, TInput>(this StateConfiguration <TState, TInput> config, TInput input, Func <bool> conditionFor) { return(config.ConditionFor(input, (x, y) => Task.FromResult(conditionFor()))); }
/// <summary> /// Set common condition for validation before transition to next state. /// </summary> public static StateConfiguration <TState, TInput> Condition <TState, TInput>(this StateConfiguration <TState, TInput> config, Func <TState, TInput, bool> condition) { return(config.Condition((x, y) => Task.FromResult(condition(x, y)))); }
/// <summary> /// Set common condition for validation before transition to next state. /// </summary> public static StateConfiguration <TState, TInput> Condition <TState, TInput>(this StateConfiguration <TState, TInput> config, Func <Task <bool> > condition) { return(config.Condition((x, y) => condition())); }
/// <summary> /// Func runs when performs into current state (entry into new state) based on concrete input value. /// </summary> public static StateConfiguration <TState, TInput> OnEntryFrom <TState, TInput>(this StateConfiguration <TState, TInput> config, TInput input, Func <Task> onEntry) { return(config.OnEntryFrom(input, (x) => onEntry())); }
/// <summary> /// Func runs when performs into current state (entry into new state) based on concrete input value. /// </summary> public static StateConfiguration <TState, TInput> OnEntryFrom <TState, TInput>(this StateConfiguration <TState, TInput> config, TInput input, Action <Transition <TState, TInput> > onEntry) { return(config.OnEntryFrom(input, x => { onEntry(x); return Task.CompletedTask; })); }
/// <summary> /// Set condition for validation before transition to next state. This condition based on concrete input value. /// </summary> public static StateConfiguration <TState, TInput> ConditionFor <TState, TInput>(this StateConfiguration <TState, TInput> config, TInput input, Func <TState, Task <bool> > conditionFor, string messge) { return(config.ConditionFor(input, (x, y) => conditionFor(x), messge)); }
/// <summary> /// Set common condition for validation before transition to next state. /// </summary> public static StateConfiguration <TState, TInput> Condition <TState, TInput>(this StateConfiguration <TState, TInput> config, Func <bool> condition, string messge) { return(config.Condition((x, y) => Task.FromResult(condition()), messge)); }