private void EnforceNotIdentityTransition(TStateType destination) { if (destination.Equals(_specification.UnderlyingState)) { throw new ArgumentException("Cannot transition to same state."); } }
public bool Includes(TStateType state) { return(_state.Equals(state) || _substates.Any(s => s.Includes(state))); }