/// <summary>
        ///
        /// </summary>
        void RestoreLastStep()
        {
            bool restoreSteps = false;

            lock (this)
            {
                restoreSteps = _initialStepsRestored == false && (_sourceDataBarProvider != null && _timeControl != null && _sourceDataBarProvider.OperationalState == OperationalStateEnum.Operational &&
                                                                  _sourceDataBarProvider.BarsUnsafe.Count > 0 && _timeControl.CurrentStep != _step);

                _initialStepsRestored = _initialStepsRestored || restoreSteps;
            }

            if (restoreSteps)
            {
                if (_step > _sourceDataBarProvider.BarCount)
                {
                    _step = _sourceDataBarProvider.BarCount;
                }

                if (_step > 0)
                {
                    _timeControl.StepTo(_step);
                }
            }
        }