public void MoveForward()
{
if(!CanMoveForward)
{
throw new InvalidOperationException("History.MoveForward() cannot execute because CanMoveForward returned false (the current state is the last state in the undo buffer.");
}
CurrentState.NextAction.Execute();
CurrentState = CurrentState.NextNode;
Length++;
RaiseUndoBufferChanged();
}