Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created August 26, 2026 17:47
Show Gist options
  • Select an option

  • Save sunmeat/35b975a4e00968df038c8e2821b79730 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/35b975a4e00968df038c8e2821b79730 to your computer and use it in GitHub Desktop.
ДЗ на сервіси

Сервісний шар та Extension-методи

Завдання

Винести бізнес-логіку та роботу з файлами/БД з MoviesController в окремий сервісний шар з використанням Dependency Injection та Extension-методів на основі прикладу https://github.com/sunmeat/aspnetcore_services


Вимоги до реалізації

  1. Створити сервісний шар:

    • Описати інтерфейс IMovieService для всіх CRUD-операцій та обробки постерів (GetAllAsync, GetByIdAsync, CreateAsync, UpdateAsync, DeleteAsync).
    • Реалізувати клас MovieService, який працює з DbContext та IWebHostEnvironment.
  2. Створити Extension-метод:

    • Написати метод розширення для IServiceCollection (наприклад, AddApplicationServices), який реєструє IMovieService та його реалізацію в DI-контейнері.
    • Підключити сервіси у Program.cs через цей extension-метод.
  3. Рефакторинг контролера:

    • Зробити MoviesController «тонким»: видалити з нього прямі звернення до БД та файлової системи.
    • Впровадити IMovieService через конструктор та використовувати його для обробки запитів.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment