Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна_проект.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.99 Mб
Скачать

Створення довідників. ServiceController

Створення довідників

Крім моделі User, яка має справу з користувачами, у нас є ряд додаткових моделей, які грають якусь допоміжну роль, описують деяку додаткову інформацію. Наприклад, модель Category описує категорію проблеми, модель Department описує відділ, в якому працює людина. Ці моделі не є центральними для системи, на відміну від класів User або Request, проте все одно потрібні нам для опису повної інформації про об'єкти.

Вся подібна інформація буде організована у вигляді довідників, які буде заповнювати адміністратор і які будуть доступні тільки йому.

Почнемо зі створення довідника для відділів. Додамо в проект новий контролер ServiceController. Видалимо з нього автоматично згенерований метод Index. Він нам не потрібний. І додамо методи для управління відділами (тобто моделлю Department):

По-перше, тому що даний контролер буде видно тільки адміністратору, то ми використовуємо атрибут [ Authorize ( Roles = " Адміністратор" )] .

Оскільки в передбачуваному завданню нам треба на одному представленні і виводити всі відділи, в той же час на цьому ж представленні має бути форма для створення нового об'єкта Department, то у нас тут є два способи. Перший спосіб полягає в типізації представлення моделлю IEnumerable <Department>, так як з контролера в представлення передаємо список відділів в якості моделі, а з представлення на контролер ми тоді посилаємо значення string для назви відділу і в контролері перевіряємо коректність цього значення. Другий спосіб полягає в тому, що ми типізуючи представлення моделлю Department та її передаємо в post - метод для створення нового об'єкта, а сам список для виведення з контролера в представлення передаємо через ViewBag. Скористаємося другим способом.

Тут прості дії на перегляд списку відділів, їх додавання і видалення. При бажання можна ще додати редагування. Тепер додамо для дії Departments представлення Departments.cshtml:

Створення активів

Модель активу представляє кабінет, пов'язаний з певним відділом. Додамо в контролер ServiceController наступні методи:

Загальна логіка роботи схожа на ту, що ми зробили для відділів. І для дії Activ додамо представлення Activ.cshtml:

Тут найпростіший код, в принципі все те ж саме, що й у випадку з відділами, тільки додається зв'язаний список відділів.

Створення категорій заявок

Категорії у нас позначають тип прецеденту. Тобто класифікують проблему по типу, наприклад, це проблема з мережею, проблема з обладнанням, проблема з програмним забезпеченням або просто закінчилася кава.

Додамо в контролер ServiceController методи, пов'язані з моделлю Category:

Як ви напевно помітили, основний функціонал для роботи з більшістю моделей однотипний: перегляд, видалення, додавання, редагування. Тепер додамо представлення для методу Categories:

Також можемо створити кілька категорій для подальшого використання:

Отже, інфраструктура роботи з довідниками і допоміжними моделями створена, тепер ми можемо переходити до центральної частини системи - роботі із заявками.