В этом ДЗ пишем библиотеку .NET Standard, пишем асинхронный код с помощью подписки на события, используем события классов .NET, добавляем свои события в класс. Такое ДЗ тренирует навык работы обработки событий, создания своих событий и знакомит с понятием асинхронности кода на примере событий.
Заявитель загружает в директорию targetDirectory
комплект документов для подачи заявления (названия и расширения файлов должны строго соблюдаться):
- "Паспорт.jpg"
- "Заявление.txt"
- "Фото.jpg"
Когда все 3 файла появляются в указанной директории DocumentsReceiver
уведомляет о том, что все документы готовы с помощью события DocumentsReady
и останавливает дальнейший прием документов.
Если пользователь не загрузил документы за время waitingInterval
, то дальнейший прием документов останавливается и DocumentsReceiver
уведомляет о превышении ожидания с помощью события TimedOut
.
Необходимо создать библиотеку .NET Standard, которая содержит класс DocumentsReceiver
.
Класс имеет 2 события:
DocumentsReady
TimedOut
Класс имеет метод Start
с 2 параметрами:
- путь до директории с документами
targetDirectory
- время ожидания загрузки документов
waitingInterval
.
Метод Start
начинает работу по приему документов как описано выше.
Использовать подписки на события классов:
System.IO.FileSystemWatcher
System.Timers.Timer
Использовать свойство Interval классаSystem.Timers.Timer
Использовать свойство EnableRaisingEvents
у System.IO.FileSystemWatcher
, чтобы он начал отправлять события
- Создана библиотека .NET Standard и класс
DocumentsReceiver
(1 балл) - Создан непустой метод
Start
с необходимыми параметрами (1 балл) - Есть подписки на события классов
System.IO.FileSystemWatcher
иSystem.Timers.Timer
(1 балл) - Директория и интервал ожидания конфигурируются (1 балл)
- Есть события
DocumentsReady
иTimedOut
и они вызывается (1 балл) - Есть отписки от событий классов
System.IO.FileSystemWatcher
иSystem.Timers.Timer
(1 балл)DocumentsReceiver
работает правильно (4 балла)