Контроллер заказов разросся до 1 500 строк с запросами к базе и расчётом скидок
В OrdersController лежат LINQ-запросы к DbContext, расчёт скидок, отправка писем и вызовы платёжного шлюза. Ту же логику скидок скопировали в фоновый обработчик импорта заказов. Тесты контроллера требуют поднимать базу.
Как стоит перераспределить ответственность?
- Контроллеру — HTTP, логику — в сервисы или обработчики
- Разбить контроллер на пять partial-классов
- Перенести всю логику в сущности EF Core
- Вынести общий код в статический класс Helpers
