В этом ДЗ пишем библиотеку .NET Standard, пишем асинхронный код с помощью подписки на события, используем события классов .NET, добавляем свои события в класс. Такое ДЗ тренирует навык работы обработки событий, создания своих событий и знакомит с понятием асинхронности кода на примере событий.
Заявитель загружает в директорию targetDirectory комплект документов для подачи заявления (названия и расширения файлов должны строго соблюдаться):
- "Паспорт.jpg"
- "Заявление.txt"
- "Фото.jpg"
Когда все 3 файла появляются в указанной директории
DocumentsReceiverуведомляет о том, что все документы готовы с помощью событияDocumentsReadyи останавливает дальнейший прием документов. Если пользователь не загрузил документы за времяwaitingInterval, то дальнейший прием документов останавливается иDocumentsReceiverуведомляет о превышении ожидания с помощью событияTimedOut.
Необходимо создать библиотеку .NET Standard, которая содержит класс DocumentsReceiver.
Класс имеет 2 события:
DocumentsReadyTimedOutКласс имеет методStartс 2 параметрами:- путь до директории с документами
targetDirectory - время ожидания загрузки документов
waitingInterval. МетодStartначинает работу по приему документов как описано выше.
Использовать подписки на события классов:
System.IO.FileSystemWatcherSystem.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 балла)