private bool CanBeMovedTo(PageflowStep step) { return(!_isComplete && (step.Name == _currentStep.Name || step.HasExecuted || step.IsAvailable)); }
protected abstract PageflowStep MoveToPrevious(PageflowStep currentStep);
protected abstract PageflowStep MoveToNext(PageflowStep currentStep);
void IPageflow.MoveTo(string step) { _currentStep.HasExecuted = true; _currentStep = (from s in _steps where s.Name == step select s).Single(); }
void IPageflow.MoveToPrevious() { _currentStep.HasExecuted = true; _currentStep = MoveToPrevious(_currentStep); }
void IPageflow.MoveToNext() { _currentStep.HasExecuted = true; _currentStep = MoveToNext(_currentStep); }
void IPageflow.MoveFirst() { _steps = GetSteps(); _currentStep = _steps[0]; }