Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Last active February 1, 2026 12:48
Show Gist options
  • Select an option

  • Save sunmeat/9a87e1584afd15db8cffee69d1df20d0 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/9a87e1584afd15db8cffee69d1df20d0 to your computer and use it in GitHub Desktop.
ДЗ: CQRS + MediatR

CQRS + MediatR у Музичному Порталі

Вимоги

  • Інтегрувати MediatR
  • Налаштувати DI та сканування обробників у Program.cs
  • Переписати контролери: замість сервісів викликати mediator.Send(command/query)
  • Кожна операція — окремий клас: IRequest / IRequest<T> + відповідний IRequestHandler

Основні приклади CQRS-об’єктів

  • Запити:
    GetGenresQuery, GetSongsByGenreQuery, GetPendingRegistrationsQuery, GetSongDownloadLinkQuery
  • Команди:
    AddSongCommand, EditSongCommand, DeleteSongCommand
    RegisterUserRequestCommand, ActivateUserCommand, DeleteUserCommand
    AddGenreCommand, EditGenreCommand, DeleteGenreCommand
    AddUserCommand, EditUserCommand

Обмеження прав

  • Перевірка ролей (Гість / Користувач / Адміністратор) в обробниках команд
  • Звичайні користувачі додають пісні лише в існуючі жанри, не редагують/не видаляють чужі

Технічні моменти

  • Шари: Presentation → Application (CQRS) → Domain → Infrastructure (EF Core)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment