Skip to content

almazsr/OTUS-delegates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Прием документов для заявления

Цель и результат задания

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published