...
Интерфейсы с префиксом "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.
В папках bin\Debug\ и \bin\Release архива уже есть два скомпилированных экземпляра библиотеки 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"
В проекте реализованы 3 примера. В каждом из трех примеров вызывается внешний REST сервис, для примера, используются REST сервисы самого портала.
...
Примечание: в папку "\Solutions\External" надо скопировать только библиотеку "Vitro.Server.External.dll", другие файлы копировать не надо.
