Что такое EntityProcessor?
Нет ничего проще, чем создать хорошую архитектуру для проекта. Вот только понятие "хорошая" не всегда совпадает с общепринятыми стандартами, паттернами и прочими правилами разработки. Обычно работает одно правило: "сойдет и так". Чем писать много букв, предлагаю посмотреть на видео, на котором я постарался по полочкам разложить необходимость использования подобного решения. И, конечно же, обосновав это как только мог, ссылаясь на свои опыт и практику.
Для того, чтобы показать, как использовать EntityProcessor задумана простая логика, которая реализована в примерах (смотри папку Samples
в репозитории)
Создание Order
По идеи требуется создать сущность Order использую какие-то проверки свойств. В случае успешного прохождения всех проверок сущность "сохраняется" в базу данных.
Обновление Order
Следующий шаг, обновление статуса сущности Order. При проверки определенных свойств у сущности, также "сохраняем" обновления в базу данных.
События домена (Domain Events)
В процессе проверок, требуется запустить соответствующие события (Domain Event). В случае Calabonga.EntityProcessor.ConsoleAppAdvanced регистрируем их в выходных данных, а дальше запускаем эти события через Mediatr.
Calabonga.EntityProcessor.ConsoleAppGood
В этом проекте реализован простой, но при этом не менее работоспособный вариант реализации описанной выше логики.
Calabonga.EntityProcessor.ConsoleAppAdvanced
В этом проекте реализован уже более продвинутый способ реализации, которые дает полных контроль происходящего, но и кода придется написать немного больше.