[ELMA3] Создание собственного типа данных для списка получателей оповещений
В данной статье приведен пример создания собственного типа данных для списка получателей оповещений. В системе существует множество типов данных для списка получателей оповещений, о которых Вы можете прочитать в следующей статье. В данном примере показан пример создания типа данных, принимающего группу пользователей, затем выбирает всех пользователей этой группы и добавляет их в список оповещаемых.
Пример использования
1 2 3 | < RecipientSet > < Group >{$New.GruppaPoljzovateley}</ Group > <!-- Где New – Ваш объект, а GruppaPoljzovateley – свойство в объекте типа Группа пользователей --> </ RecipientSet > |
Методы интерфейса
1 2 3 4 5 6 7 8 9 10 11 | /// <summary> /// Имя типа получателя сообщения (соответствует имени в шаблоне) /// </summary> string Name { get ; } /// <summary> /// Получить список получателей (пользователей) /// </summary> /// <param name="value">Значение</param> /// <returns>Список получателей (пользователей)</returns> IEnumerable< object > GetRecipients( object value); |
Пример реализации точки расширения (интерфейса)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | [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]; } } |
Примечание
Вы можете использовать любой тип объекта при реализации точки расширения, например, справочник, тип задачи, проект, взаимоотношение и так далее. Главное при реализации данной точки расширения – составить список пользователей, которые получат оповещение.