Разработано в Visual Studio 2017 v 15.9.15 Установленне компоненты для запуска: .net Framework 4.7.2 .net standart 2.0 Используется одна библиотка из nuget: Expression.Blend.Sdk
Два проекта: MarketPlayer.Core - Библиотке на .net standart для использования под другой ОС. Для реализации под Linux необходимо будет реализовать графический интерфейс. Компонет View от MVVM шаблона и точку входа в приложение MarketPlayer.WinUI - .net FrameWork Конечное приложение UI (WPF) View от MVVM Примеры для запуска кописруются в выходную директорию Точка входа в приложение
Поведение не перекрытое (из-за упрощения):
- Сценарий когда расписание пустое (в нём нет задач)
- Сценарий когда в папках из задач расписания отсутсвуют файлы
- Сценарий при котором в папкас с видео файлами присутсуют не видео файлы
- Сценарий при котором папки и файл удаляются и добавляются во время работы приложения
- Сценарий при котором файл не воспроисзовдится по той или иной причине (Отсутвует кодек например)
- При пустом расписании следующем за видео проявляется проблема отображения последнего кадра у заврешшённого видио. (Поведение MediaElement при установке Source = null )
- Стиль текста более чёткий чем должен быть. (При использовании размытия выглядит более размытым, чем на дизайне, используется без размытия)
- Стиль динамики кнопки не добавлен.
- Стиль динамики кнопок свернуть развернуть и закрыть.
Архитектурные докущени (упрощения):
- Приложение и библиотека обработки установки задач вся работает в потоке UI. Для упрощения установки параметра для корретного обображения во View Binding ов.
- Приложение всё работает событийно. Т.е. либо открытие расписания запускает обработку, либо окончание видео, либо таймер который работает если в расписании пустое время.
- Таймер оканчивает работу если запущено новое расписание.
- При наступлении времени когда нужно переключится на следующую задачу из расписания, ничего не происходит. Сверка времени происходит по событиям из пункта 2 (т.е. текущее воспроизведение видео не обрывается)