В этом ДЗ пишем библиотеку .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
Создана библиотека .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 балла)