Интерфейсная библиотека Vitro.Server.Core.dll содержит ряд интерфейсов для реализации логики обработки определенных событий в системе.
- IItemEventReceiverBeforeCreateService - вызов перед созданием нового элемента.
- IItemEventReceiverAfterCreateService - вызов после создания нового элемента.
- IItemEventReceiverBeforeUpdateService - вызов перед обновлением элемента.
- IItemEventReceiverAfterUpdateService - вызов после обновления элемента.
- IItemEventReceiverBeforeDeleteService - вызов перед удалением элемента.
Интерфейсы с префиксом "Before", как правило, используются, если необходимо реализовать дополнительные проверки (валидацию).
Демонстрационный проект - VitroMPReceiverDemo.zip
В проекте реализованы 3 примера. В каждом из примеров вызывается внешний REST сервис, для примера, используются REST сервисы самого портала.
- AfterCreateReceiverService - публикация чистовой версии документа 1.0 после добавления.
- AfterUpdateReceiverService - при смене статуса документа с "Размещено" на "Отклонено" выполняется прерывание наследования прав на текущем документе и права очищаются.
- BeforeDeleteReceiverService - перед удалением документа выполняется проверка на наличие не закрытых замечаний для документа и генерируется исключение, если замечания есть и документ не удаляется.
Сборка и размещение "Vitro.Server.External.dll".
1. В архиве проект библиотеки (Vitro.Server.External.dll) с исходниками. Проект сделан на языке c# в среде выполнения .net 8.0 и с помощью среды разработки Visual Studio 2022.
2. Проект необходимо открыть в VS 2022 и выполнить его сборку командой "Build", предварительно выбрав конфигурацию сборки "Release", как показано на рисунке. После сборки проекта в папке "\bin\Release" должен появится файл "Vitro.Server.External.dll".
Примечание! Перед сборкой проекта надо в исходниках заменить все URL-адреса при вызове REST-сервисов на актуальные, соответствующие текущей площадке.
3. Скомпилированную библиотеку из п.2 необходимо разместить по пути и выполнить перезапуск процесса портала Vitro.Server.Core.Web.
- для Windows: "c:\Program Files\Vitro Software\Vitro\Server\Solutions\External"
- для Linux : "
/etc/Vitro/Server/Solutions/External"
Примечание: в папку "\Solutions\External" надо скопировать только библиотеку "Vitro.Server.External.dll", другие файлы копировать не надо.
