[ELMA3] Создание собственного типа данных для списка получателей оповещений
В данной статье приведен пример создания собственного типа данных для списка получателей оповещений. В системе существует множество типов данных для списка получателей оповещений, о которых Вы можете прочитать в следующей статье. В данном примере показан пример создания типа данных, принимающего группу пользователей, затем выбирает всех пользователей этой группы и добавляет их в список оповещаемых.
Пример использования
<RecipientSet> <Group>{$New.GruppaPoljzovateley}</Group> <!-- Где New – Ваш объект, а GruppaPoljzovateley – свойство в объекте типа Группа пользователей --> </RecipientSet>
Методы интерфейса
/// <summary> /// Имя типа получателя сообщения (соответствует имени в шаблоне) /// </summary> string Name { get; } /// <summary> /// Получить список получателей (пользователей) /// </summary> /// <param name="value">Значение</param> /// <returns>Список получателей (пользователей)</returns> IEnumerable<object> GetRecipients(object value);
Пример реализации точки расширения (интерфейса)
[Component] public class GroupNotificationType : INotificationRecipientTypeHandler { public string Name { get { return "Group"; } } public IEnumerable<object> GetRecipients(object value) { if (value == null) { return new object[0]; } var group = value as IUserGroup; if (group != null) { var recipients = new List<object>(); if (group.Users.Count > 0) { foreach (var user in group.Users) { recipients.Add(user); } return recipients; } } return new object[0]; } }
Примечание
Вы можете использовать любой тип объекта при реализации точки расширения, например, справочник, тип задачи, проект, взаимоотношение и так далее. Главное при реализации данной точки расширения – составить список пользователей, которые получат оповещение.