在我的共享点网站上有一个奇怪的警报行为。
我有一个文档库,我想在添加、更新、删除文件夹或文档时向特定用户添加警报。不得为特定用户触发警报。
物品接收者:
public override void ItemAdded(SPItemEventProperties properties)
{
AlertManager manager = new AlertManager(properties.List, properties.Web);
manager.UpdateAlerts();
base.ItemAdded(properties);
}
我有一种方法可以检查某个用户组的每个用户是否已经收到警报。如果没有我加一个。
添加警报的方法:
private void CreateUserAlerts(SPUser user)
{
SPAlert newAlert = user.Alerts.Add();
newAlert.Title = "AlertTitle" ;
newAlert.AlertType = SPAlertType.List;
newAlert.List = currentList;
newAlert.DeliveryChannels = SPAlertDeliveryChannels.Email;
newAlert.EventType = SPEventType.All;
newAlert.AlertFrequency = SPAlertFrequency.Immediate;
string userFilter = "userLoginNoTriggerALert";
newAlert.Filter = "<Query><Neq><FieldRef Name=\"Author/New\" /><Value type=\"Text\">" + userFilter + "</Value></Neq></Query>";
newAlert.Update(true);
}
对于添加的每个第一个文件夹/文档,都会触发警报,就好像没有考虑过滤器一样。但是之后一切都按预期工作。
如果有人有想法。