logo

[ELMA3] Подписание пользователя на рассылку об изменениях документа в сценарии

Подписать пользователя на рассылку об изменениях документа можно с помощью приведенного ниже сценария.

Пример сценария с использованием PublicAPI

Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.

Контекстные переменные:
context.User - переменная типа Пользователь;
context.Document - переменная типа Документ.

Пространство имен:

using EleWise.ELMA.API;

Текст сценария:

PublicAPI.Services.WatchEntity.CreateWatchByUser(context.Document.TypeUid, context.Document.Id, context.User);

Пример сценария без использования PublicAPI

Для корректной работы сценария необходимо подключить пространства имен:
using EleWise.ELMA.Common.Managers;
using EleWise.ELMA.Model.Common;
using EleWise.ELMA.Model.Entities;
using EleWise.ELMA.Model.Managers;
using EleWise.ELMA.Model.Metadata;
using EleWise.ELMA.Model.Types.Settings;
Текст сценария:
//загрузка типа документа
var metadata = MetadataLoader.LoadMetadata(context.Dokument.GetType());
//проверка на наличие слежений этого пользователя за этим документом
if (WatchManager.Instance.GetWatchByUser(metadata.Uid, context.User.Id,  context.Document.Id).Count == 0)
{
  //создание нового слежения, если подписок нет WatchManager.Instance.CreateWatchByUser(metadata.Uid, context.Document.Id, context.User);
}
Контекстная переменная context.User имеет тип Пользователь и содержит пользователя, которого нужно подписать на рассылку, а переменная context.Document хранит интересующий документ.