public StepTransitionResult Back() { if (!CanGoBack) { return(StepTransitionResult.Failure("This is the first step")); } _currentIndex--; return(StepTransitionResult.Success()); }
public StepTransitionResult Next(Node node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } if (!CanGoForward) { return(StepTransitionResult.Failure("This is the last step")); } StepTransitionResult result = _steps[_currentIndex].Next(node); if (result.CanTransition) { _currentIndex++; } return(result); }