Создание сообщения в сценарии
В данной статье рассмотрим пример создания сообщения пользователю в сценарии.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.
Контекстные переменные:
- context.Poluchatelj – переменная типа Пользователь;
- context.Poljzovatelj – переменная типа Пользователь.
Пространство имен:
1 | using EleWise.ELMA.API; |
Текст сценария:
1 | PublicAPI.Portal.Messages.SendMessage( "Тема сообщения" , "Текст сообщения" , context.Poluchatelj, context.Poljzovatelj); // Тема сообщения, Текст сообщения, Получатель, Отправитель |
Примечание.
Начиная с версии ELMA 3.8 появилась возможность использовать Builder для создания сообщений.
Контекстные переменные:
- context.Poluchatelj – переменная типа Пользователь;
- context.Poljzovatelj – переменная типа Пользователь.
Текст сценария:
1 | PublicAPI.Portal.Messages.MessageBuilder( "Тема сообщения" ).MessageText( "Текст сообщения" ).Recipients( new [] { context.Poluchatelj }).MessageAuthor(context.Poljzovatelj).SendMessage(); |
Пример сценария без использования PublicAPI
Для корректной работы сценария необходимо подключить сборки:
EleWise.ELMA.Messages
EleWise.ELMA.Documents
Пространство имен:
1 2 | using EleWise.ELMA.Messages.Models; using Elewise.ELMA.Model.Services; |
Текст сценария:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //создание нового сообщения: var m = InterfaceActivator.Create<ChannelMessage>(); //добавление в список получателей пользователя, который хранится в переменной context.Poljzovatelj типа Пользователь m.Recipients.Add(context.Poljzovatelj); m.Subject = "Тема сообщения" ; m.MessageType = ChannelMessageType.Post; //указание автора сообщения m.CreationAuthor = context.Poljzovatelj; //указание даты создания сообщения: m.CreationDate = DateTime.Now; //содержание сообщения: m.FullMessage = "Текст сообщения" ; //создание статуса сообщения (новое или прочитанное) var s = InterfaceActivator.Create<RecipientMessageStatus>(); s.Message = m; s.Recipient = context.Poljzovatelj; //статус сообщения: новое s.Status = MessageStatus.New; s.Save(); //добавление статуса в сообщение m.Statuses.Add(s); //сохранение сообщения m.Save(); |