# Назначение инженера на выполнение заявки (РЧ22) ## Разработка библиотеки классов ### Описание предметной области 1. Есть список заявок: _дата/время_, признак _требует выезда специалиста_, _тип заявки_ (интернет, мобильная маязь, телевидение, видеонаблюдение), _назначенный инженер_ (может быть пусто для новой заявки) 1. У сотрудника с ролью _инженер_ есть набор компетенций (интернет, мобильная маязь, телевидение, видеонаблюдение) 1. Есть график отпусков: _id сотрудника_, _дата с_, _дата по_ ### Ограничения * нельзя назначить заявку на время, если в это время (+-30 минут) инженер занят на другой заявке * проверять график отпусков * нельзя назначать инженера, если тип заявки не соответствует набору компетенций инженера * заявку может создавать только сотрудник с ролью _начальник отдела_ ### Спецификация библиотеки * название библиотеки: `somelib.dll` * название класса: `SomeClass` * спецификация метода (в формате C#, питонисты делайте по аналогии) ```cs public boolean someCheck( IEnumerable appList, // список заявок IEnumerable vacationList, // график отпусков DateTime appTime, // время, на которое хотят оформить заявку Employer engineer, // на кого делается заявка Employer chief // кто пытается назначить ) ``` ## Задание 1. Разработать модели (классы) и наборы данных, необходимые для предметной области 1. Написать библиотеку классов, реализующую метод проверки возможности назначить инженера на заявку 1. Разработать тестовые сценарии 1. Написать unit-тесты для разработанных тестовых сценариев