public bool IsSubstateOf(TState state) { if (_superstate is null) { return(false); } if (state.Equals(_superstate.State)) { return(true); } return(_superstate.IsSubstateOf(state)); }
public void AddSuperstate(IStateConfigurationAsyncInternal <T, TState, TTrigger> superStateConfiguration) { if (IsSubstateOf(superStateConfiguration.State)) { throw new ArgumentOutOfRangeException($"{State} is already a sub-state of {superStateConfiguration.State}."); } if (superStateConfiguration.IsSubstateOf(State)) { throw new ArgumentOutOfRangeException($"{superStateConfiguration.State} is already a sub-state of {State}."); } _superstate = superStateConfiguration; }