Интерфейсная библиотека 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", другие файлы копировать не надо.







  • No labels