/// <summary>
        /// Отфильтровать серии от просмотренных и не выбранных
        /// </summary>
        private void FilterCheckedEpisodes()
        {
            var count           = 0;
            var approximateTime = new TimeSpan();

            foreach (var ce in CheckedEpisodes.ToList())
            {
                var option = ce.EpisodeOptions
                             .FirstOrDefault(eo => eo.CartoonVoiceOverId == ce.CartoonVoiceOver.CartoonVoiceOverId);

                if (option == null)
                {
                    CheckedEpisodes.Remove(ce);

                    continue;
                }

                if (DateTime.Now.Subtract(option.LastDateViewed) >
                    GeneralSettings.NonRepeatTime)
                {
                    approximateTime += option.Duration;
                    count++;
                    continue;
                }

                CheckedEpisodes.Remove(ce);
            }

            ApproximateEpisodeDuration =
                new TimeSpan(0, 0,
                             (int)(approximateTime.TotalSeconds / count));

            NotifyOfPropertyChange(() => EndTime);
            NotifyOfPropertyChange(() => EndDate);
        }
        /// <summary>
        /// Создает список (по порядку, перемешанный (с цепочкой эпизодов)).
        /// </summary>
        private void CreateList()
        {
            if (AppVal.WS.RandomWatching)
            {
                _checkedEpisodes = ShuffleEpisodes(_checkedEpisodes.ToList(), AppVal.WS.RandomMixCount ?? 1);

                if (AppVal.WS.IsEpisodeChainActive)
                {
                    _checkedEpisodes = CreateEpisodeChains(CheckedEpisodes.ToList());
                }
            }
            else
            {
                _checkedEpisodes = CheckedEpisodes.OrderBy(ce => ce.FullNumber).ToList();
            }

            NotifyOfPropertyChange(() => CheckedEpisodes);
        }