Тестовое задание на разработку приложения ASP.NET MVC.
Есть служба тех поддержки, в которой три уровня сотрудников: оператор, менеджер, директор. В службу приходят запросы, которые обрабатываются следующим образом.
- Если есть свободный оператор, то он обрабатывает входящий запрос. Иначе запрос попадает в очередь.
- Как только оператор освободился он получает запрос из очереди (если не пустая).
- Если запрос в очереди больше Tm времени, то может ответить как свободный оператор так и свободный менеджер.
- Если запрос в очереди больше Td, то запрос поступает и к директору. Запрос обрабатывается только одним сотрудником. Один сотрудник может обрабатывать только 1 запрос одновременно. Запрос считается выполненным, если он попал к одному из сотрудников и прошло случайное количество времени в заданном диапазоне.
Реализуйте ASP.Net MVC приложение со следующим функционалом.
- Web API: Добавление нового клиентского запроса, отмена запроса со стороны клиента, получение статуса запроса (выполнен/не выполнен).
- Визуализация очереди входящих (количество) и истории выполненных запросов (кто выполнил, сколько времени заняло).
- Визуализация состояния сотрудников на текущий момент (занят/свободен).
- Возможность конфигурирования следующих параметров:
- диапазон времени выполнения клиентского запроса (нижняя и верхняя границы интервала времени);
- время Td;
- время Tm;
- список сотрудников.
Кроме того, необходимо реализовать консольное приложение для тестирования сервера. Приложение должно генерировать запросы клиентов для взаимодействия с Web API. Параметры приложения:
- границы случайного диапазона времени между запросами,
- количество запросов (если не указано, то запросы отсылаются пока приложение работает).