Пользовательские уведомления по электронной почте для подписки на уведомления типа «Дайджест» - PullRequest
1 голос
/ 08 марта 2011

Я работаю над настраиваемым уведомлением по электронной почте для решения WSS 3.0. Я использую пользовательский класс, наследуемый от IAlertNotifyHandler, для генерации электронной почты. Вот отличный пример здесь , который показывает, как это делается для немедленного оповещения. Вот часть кода, относящегося к SPAlertHandlerParams, который используется для получения информации о предупреждении и элементе, который вызвал предупреждение.

SPAlertHandlerParams ahp;

int id = ahp.eventData[0].itemId;  //gets the itemId of the item triggering the notification.  

SPListItem myItem = list.GetItembyId(id);

Для немедленных оповещений это прекрасно работает, так как нужный элемент всегда находится в позиции [0] объекта eventData. Для дайджест-события я подумал, что могу просто просмотреть все элементы в ahp.eventData. Две проблемы с этим.

Во-первых, он сообщает обо всех событиях, на которые он отправляет уведомления, а не только для меня. Во-вторых, eventData [0] .itemId больше не указывает на действительный идентификатор в списке. Это 6-7-значный номер вместо 3-значного номера.

Кто-нибудь знает правильный способ получения информации об оповещениях для дайджест-писем? Пожалуйста, дайте мне знать, если у вас есть дополнительные вопросы по этому поводу.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 14 июля 2011

Для своего проекта я создал пользовательское задание таймера (используя post Эндрю Коннелла), которое имитирует функцию оповещения.Он запускается в одночасье и опрашивает всех пользователей, подписавшихся на мой список, с ежедневными оповещениями.Затем он упаковывает все новые задачи в специальное сообщение электронной почты.

Я оставил настраиваемое оповещение на месте, чтобы подавлять любые ежедневные уведомления из системы.Я просто возвращаю «True», чтобы предупреждения не отправлялись для задач, назначенных только 1 человеку.Полагаю, оглядываясь назад, я мог бы запустить код запроса в настраиваемом предупреждении и не нуждаться в отдельном задании таймера.

...