Винести бізнес-логіку та роботу з файлами/БД з MoviesController в окремий сервісний шар
з використанням Dependency Injection та Extension-методів
на основі прикладу https://github.com/sunmeat/aspnetcore_services
-
Створити сервісний шар:
- Описати інтерфейс
IMovieServiceдля всіх CRUD-операцій та обробки постерів (GetAllAsync,GetByIdAsync,CreateAsync,UpdateAsync,DeleteAsync). - Реалізувати клас
MovieService, який працює зDbContextтаIWebHostEnvironment.
- Описати інтерфейс
-
Створити Extension-метод:
- Написати метод розширення для
IServiceCollection(наприклад,AddApplicationServices), який реєструєIMovieServiceта його реалізацію в DI-контейнері. - Підключити сервіси у
Program.csчерез цей extension-метод.
- Написати метод розширення для
-
Рефакторинг контролера:
- Зробити
MoviesController«тонким»: видалити з нього прямі звернення до БД та файлової системи. - Впровадити
IMovieServiceчерез конструктор та використовувати його для обробки запитів.
- Зробити
Внести правки в репозиторій з попереднім ДЗ, посилання на репозиторій відправити в коментар до цього ДЗ на майстат.