Ulteam.SharePoint
Notifications Class
Namespace: Ulteam.SharePoint
Description
Класс по работе с уведомлениями. Для стабильной работы методов класса лучше использовать списки, созданные с помощью ListInitialization класса.
Constructors
Name | Description |
---|---|
Notifications(List<DataItem> DataItems, SPList NotificationList, SPList NotificationSettingsList, SPList NotificationUserList, SPList ReminderNotificationList, SPList ReminderSettingsList) | Инициирование объекта для отправки уведомлений. DataItems: Список объектов с данными, необходимыми для формирования уведомления. NotificationList: Список уведомлений. NotificationSettingsList: Список настроек уведомлений. NotificationUserList: Список для добавления пользователей в уведомления. ReminderNotificationList: Список Reminder’ов. ReminderSettingsList: Список настроек Reminder’ов. |
Notifications(SPWeb Web, List<DataItem> DataItems, String NotificationListUrl, String NotificationSettingsListUrl, String NotificationUserListUrl, String ReminderNotificationListUrl, String ReminderSettingsListUrl) | Инициирование объекта для отправки уведомлений. Web: Узел со списками для работы с уведомлениями. DataItems: Список объектов с данными, необходимыми для формирования уведомления. NotificationListUrl: Url списка уведомлений. По умолчанию: ‘Lists/NotificationList’. NotificationSettingsListUrl: Url списка настроек уведомлений. По умолчанию: ‘Lists/NotificationSettings’. NotificationUserListUrl: Url списка для добавления пользователей в уведомления. По умолчанию: ‘Lists/NotificationUserList’. ReminderNotificationListUrl: Url списка Reminder’ов. ReminderSettingsListUrl: Url списка настроек Reminder’ов. |
Methods
Name | Description |
---|---|
CreateByProcessStep(SPListItem ProcessStep, DateTime ReminderStartDate, String ItemType, String ItemId, String StepNumber, Boolean AddIfCreated) | Создание уведомления по настройке шага процесса (элемент списка ProcessStepList). ProcessStep: Шаг процесса (элемент списка ProcessStepList). ReminderStartDate: Дата первого Reminder’а. В случае обычного уведомления значение ни на что не влияет. ItemType: Тип элемента списка. ItemId: Id элемента списка. StepNumber: Id шага процесса уведомления. AddIfCreated: Укажите, надо ли добавлять уведомление, если уже добавлено уведомление с такими же ItemType, ItemId, StepNumber и NotificationSetting. Значение по умолчанию: false. |
CreateBySetting(NotificationSetting Setting, DateTime ReminderStartDate, String ItemType, String ItemId, String StepNumber, Boolean AddIfCreated) | Создание уведомления по настройке уведомления (элементу из NotificationSettings). Setting: Настройка уведомления (элемент из NotificationSettings). ReminderStartDate: Дата первого Reminder’а. В случае обычного уведомления значение ни на что не влияет. ItemType: Тип элемента списка. ItemId: Id элемента списка. StepNumber: Id шага процесса уведомления. AddIfCreated: Укажите, надо ли добавлять уведомление, если уже добавлено уведомление с такими же ItemType, ItemId, StepNumber и NotificationSetting. Значение по умолчанию: false. |
CreateByTitle(String NotificationTitle, DateTime ReminderStartDate, String ItemType, String ItemId, String StepNumber, Boolean AddIfCreated) | Создание уведомления по названию в списке NotificationSettings. NotificationTitle: Название уведомления (поле Title в NotificationSettings). ReminderStartDate: Дата первого Reminder’а. В случае обычного уведомления значение ни на что не влияет. ItemType: Тип элемента списка. ItemId: Id элемента списка. StepNumber: Id шага процесса уведомления. AddIfCreated: Укажите, надо ли добавлять уведомление, если уже добавлено уведомление с такими же ItemType, ItemId, StepNumber и NotificationSetting. Значение по умолчанию: false. |
DefaultParseTemplate(String Template) | Парсинг шаблона по тегам Filled, Field, FormUrl, History. Template: Шаблон для парсинга. |
EndReminders(String ItemType) | Завершение Reminder’ов, отфильтрованных по ItemType. ItemType: Тип элемента списка. |
EndReminders(String ItemType, String ItemId) | Завершение Reminder’ов, отфильтрованных по ItemType, ItemId. ItemType: Тип элемента списка. ItemId: Id элемента списка. |
EndReminders(String ItemType, String ItemId, String StepNumber) | Завершение Reminder’ов, отфильтрованных по ItemType, ItemId, StepNumber. ItemType: Тип элемента списка. ItemId: Id элемента списка. StepNumber: Id шага процесса уведомления. |
GetNotificationUsers(SPFieldLookupValueCollection LookupValues) | Получение пользователей для уведомления через lookupValues из NotificationUserList. LookupValues: Lookup’ы к списку NotificationUserList. |
UpdateReminders(DateTime CheckDate) | Обновление всех Reminder’ов по условию (End = 0 AND NotificationDate <= CheckDate). Если Reminder (элемент списка ReminderNotificationList) подходит под эти условия, то создается элемент в NotificationList и к Reminder.NotificationDate добавляется ReminderSendPeriod из списка NotificationSettings. CheckDate: Дата, с которой необходимо сравнить NotificationDate. |
Samples
public void CreateNotificationByProcessStep()
{
// узел со списками настроек уведомлений
SPWeb web = Settings.Mock.Web;
// список настроек шагов процесса
SPList processList = Settings.Mock.Lists["ProcessStepList"];
// шаг процесса
SPListItem processStep = processList.GetItemById(1);
// Данные, по которым формируется уведомление.
List<DataItem> dataItems = GetDataItems();
Notifications notifications = new Notifications(web, dataItems);
// Формирование уведомлений и добавление обычных уведомлений в NotificationList
// и reminder'ов в ReminderNotificationList
bool created = notifications.CreateByProcessStep(
processStep,
// Дата первой отправки Reminder'а. Если простое уведомление, то дата ни на что не влияет
DateTime.Now,
// ItemType в NotificationList
"ProcessStepTest",
// ItemId в NotificationList
"100",
// StepNumber в NotificationList
"1000",
// Если false, то новый элемент в NotificationList добавляется только в случае,
// если не существует элемента с такими же ItemType, ItemId, StepNumber
false
);
// добавление Reminder'ов, для которых NotificationDate из ReminderNotificationList меньше DateTime.Now
notifications.UpdateReminders(DateTime.Now);
}
public void CreateNotificationBySetting()
{
SPWeb web = Settings.Mock.Web;
// Данные, по которым формируется уведомление.
List<DataItem> dataItems = GetDataItems();
Notifications notifications = new Notifications(web, dataItems);
// получение настройки уведомления
NotificationSetting setting = new NotificationSetting(notifications.NotificationSettingsList);
setting.GetByTitle("NotificationTest");
// Формирование уведомления и добавление в NotificationList
// или в ReminderNotificationList
bool created = notifications.CreateBySetting(
setting,
// Дата первой отправки Reminder'а. Если простое уведомление, то дата ни на что не влияет
DateTime.Now,
// ItemType в NotificationList
"ProcessStepTest",
// ItemId в NotificationList
"100",
// StepNumber в NotificationList
"1000",
// Если false, то новый элемент в NotificationList добавляется только в случае,
// если не существует элемента с такими же ItemType, ItemId, StepNumber
false
);
// добавление Reminder'ов, для которых NotificationDate из ReminderNotificationList меньше DateTime.Now
notifications.UpdateReminders(DateTime.Now);
}
public void CreateNotificationBySettingTitle()
{
SPWeb web = Settings.Mock.Web;
// Данные, по которым формируется уведомление.
List<DataItem> dataItems = GetDataItems();
Notifications notifications = new Notifications(web, dataItems);
// Формирование уведомления и добавление в NotificationList
// или в ReminderNotificationList
bool created = notifications.CreateByTitle(
// Название элемента в списке NotificationSettings
"NotificationTest",
// Дата первой отправки Reminder'а. Если простое уведомление, то дата ни на что не влияет
DateTime.Now,
// ItemType в NotificationList
"ProcessStepTest",
// ItemId в NotificationList
"100",
// StepNumber в NotificationList
"1000",
// Если false, то новый элемент в NotificationList добавляется только в случае,
// если не существует элемента с такими же ItemType, ItemId, StepNumber
false
);
// добавление Reminder'ов, для которых NotificationDate из ReminderNotificationList меньше DateTime.Now
notifications.UpdateReminders(DateTime.Now);
}