/// <summary>
        /// Загрузка расписания из строк
        /// </summary>
        /// <param name="shedule">Строки с конфигурацией</param>
        public void LoadShedule(IEnumerable <string> shedule)
        {
            //парсим строки
            var sh = shedule
                     .Where(arg => arg != string.Empty)
                     .Select(arg => new SheduleItem(arg))
                     .OrderBy(arg => arg.Start)
                     .ToArray();

            // проверяем пересечение периодов
            foreach (var item in sh.Where(arg => arg.Type == MediaTypes.Background))
            {
                if (sh.Any(arg => item.Start < arg.End && item.End > arg.Start && arg != item))
                {
                    throw new ApplicationException("Пересечение периодов");
                }
            }

            //программируем лпанировщик задач
            JobManager.Stop();

            var registry = new Registry();

            foreach (var item in sh)
            {
                switch (item.Type)
                {
                case MediaTypes.Background:
                    registry.Schedule(() => UpdateBackground(item.Path, true)).ToRunEvery(1).Days().At(item.Start.Hour, item.Start.Minute);
                    registry.Schedule(() => mediaEngine.Stop()).ToRunEvery(1).Days().At(item.End.Hour, item.End.Minute);
                    break;

                case MediaTypes.Interrupt:
                    registry.Schedule(() => SetInterrupt(item.Path)).ToRunEvery(1).Days().At(item.Start.Hour, item.Start.Minute);
                    break;
                }
            }

            JobManager.Initialize(registry);

            //запускаем текущее событие, если нужно

            var currentBg = sh.FirstOrDefault(arg => arg.Start <= DateTime.Now && arg.End >= DateTime.Now);

            if (currentBg == null)
            {
                return;
            }

            UpdateBackground(currentBg.Path);
            if (!mediaEngine.HasFileOpened)
            {
                background.PlayNext();
            }
        }
        private void SetInterrupt(string path)
        {
            // ставим Background на паузу и заводим Interrupt
            background.Pause();
            var dir = new DirectoryInfo(path);

            interrupt.Update(dir.GetFiles());
            interrupt.PlaylistEnded += Interrupt_PlaylistEnded;
            interrupt.PlayNext();
        }