public ProblemManedger(ProblemObservable _probObs, ProblemsExecuteObservable _probExecutObs, SpeechSynthesizer _synthesizer, SettingsClass _settClass)
        {
            _problemAllObs      = _probObs;
            _problemExecutedObs = _probExecutObs;
            _problemForSpeech   = new List <Problem>();

            synthesizer = _synthesizer;
            settClass   = _settClass;

            #region -Timers-
            Interval             = new TimeSpan(0, 0, 1);
            check_timer          = new DispatcherTimer();
            check_timer.Interval = Interval;
            check_timer.Tick    += Check_timer_Tick;
            check_timer.Start();

            pause_timer          = new DispatcherTimer();
            pause_timer.Interval = new TimeSpan(0, 0, 2);
            pause_timer.Tick    += Pause_timer_Tick;

            readText_timer          = new DispatcherTimer();
            readText_timer.Interval = new TimeSpan(0, 30, 10); // должно быть из SettingsClass
            readText_timer.Tick    += ReadText_timer_Tick;
            //readText_timer.Start();
            #endregion

            readList = Speak.LoadText() ?? (new string[0]);
            CheckProblemStart();
        }
        /// <summary>
        /// Десериализация сохраненных объектов
        /// </summary>
        private void DeserializesObject()
        {
            _problemObs = new ProblemObservable();
            _problemObs = (ProblemObservable)SerializeA.Deserializes(_problemObs.GetType().ToString(), _problemObs);

            _settClass = new SettingsClass();
            _settClass = (SettingsClass)SerializeA.Deserializes(_settClass.GetType().ToString(), _settClass);
            _settClass.PropertyChanged += SettClass_PropertyChanged;
        }
        public ProblemViewModel()
        {
            _repoClasses = new RepositoryClasses();
            _problemsObs = _repoClasses.ProblemObs;
            _problemsObs.CollectionChanged       += _problemsObs_CollectionChanged;
            _problemExecuteObs                    = _repoClasses.ProblemExecuteObs;
            _problemExecuteObs.CollectionChanged += _problemExecuteObs_CollectionChanged;

            _settClass   = _repoClasses.SettClass;
            _synthesizer = _repoClasses.Synthesizer;

            //
            _timeSumObs = new TimeSummaryObservable(TimePeriodType._day, DateTime.Now);
            _timeSumObs.AddTimeSummary(_problemsObs, TimePeriodType._day);

            //
            _dateForIndicator = DateTime.Now;
            NearestProblem    = NearestProblemSet(_problemsObs[0]);
        }