public List <SPAlert> GetAlertsInformation(ClientContext cc) { try { var alertResults = new List <SPAlert>(); var users = cc.LoadQuery(cc.Web.SiteUsers.Include(u => u.LoginName, u => u.Email, u => u.Title)); cc.ExecuteQuery(); foreach (var user in users) { cc.Load(user.Alerts); cc.ExecuteQuery(); foreach (var alert in user.Alerts) { var alertResult = new SPAlert(); alertResult.Title = alert.Title; alertResult.UserLoginName = user.LoginName; alertResult.ListUrl = alert.ListUrl; alertResult.Filter = alert.Filter; alertResult.Status = Enum.GetName(typeof(AlertStatus), alert.Status); alertResults.Add(alertResult); } } return(alertResults); } catch (Exception ex) { logger.Log(LogLevel.Error, ex, $"Site:{cc.Url}"); throw ex; } }
private void CheckItems(XmlNode siteNode, string url) { using (SPWeb web = new SPSite(url).OpenWeb()) { XmlNodeList alertNodes = siteNode.SelectNodes("alert[@type='Item']"); foreach (XmlNode alertNode in alertNodes) { string alertTitle = alertNode.Attributes["title"].Value; string listTitle = alertNode.Attributes["list"].Value; string loginName = alertNode.Attributes["user"].Value; int itemId = Int32.Parse(alertNode.Attributes["id"].Value); string itemUrl = alertNode.Attributes["url"].Value; string objectType = alertNode.Attributes["object"].Value; output.Append(string.Format("user: {0,20}...", loginName)); try { SPList list = web.Lists[listTitle]; SPClaimProviderManager cpm = SPClaimProviderManager.Local; SPClaim userClaim = cpm.ConvertIdentifierToClaim(loginName, SPIdentifierTypes.WindowsSamAccountName); SPUser user = web.EnsureUser(userClaim.ToEncodedString()); string eventType = alertNode.Attributes["event"].Value; SPEventType spEventType = (SPEventType)Enum.Parse(typeof(SPEventType), eventType); string eventFrequency = alertNode.Attributes["frequency"].Value; SPAlertFrequency spAlertFrequency = (SPAlertFrequency)Enum.Parse(typeof(SPAlertFrequency), eventFrequency); string type = alertNode.Attributes["type"].Value; SPAlertType spAlertType = (SPAlertType)Enum.Parse(typeof(SPAlertType), type); SPListItem item = null; if (list.BaseType == SPBaseType.DocumentLibrary) { SPFile file = web.GetFile(itemUrl); item = file.Item; } else { item = list.GetItemById(itemId); } SPAlert newAlert = user.Alerts.Add(); newAlert.Title = alertTitle; newAlert.AlertType = spAlertType; newAlert.Item = item; newAlert.DeliveryChannels = SPAlertDeliveryChannels.Email; newAlert.EventType = spEventType; newAlert.AlertFrequency = spAlertFrequency; newAlert.Status = SPAlertStatus.On; newAlert.Update(false); output.Append(string.Format("Complete" + Environment.NewLine)); } catch (Exception ex) { output.Append(string.Format("error: {0,20}" + Environment.NewLine, ex.Message)); } } } }
public AlertNode(object parent, SPAlert alert) { this.Tag = alert; this.SPParent = parent; Setup(); this.Nodes.Add(new ExplorerNodeBase("Dummy")); }
public SPAlertInstance(ObjectInstance prototype, SPAlert alert) : this(prototype) { if (alert == null) { throw new ArgumentNullException("alert"); } m_alert = alert; }
private string GetAlertInfo(SPAlert alert) { if (alert.List != null) { return(_utility.GetDisplayName(alert.List, true)); } if (alert.Item != null) { return(_utility.GetDisplayName(alert.Item, true)); } return(string.Empty); }
private void CheckLists(XmlNode siteNode, string url) { using (SPWeb web = new SPSite(url).OpenWeb()) { XmlNodeList alertNodes = siteNode.SelectNodes("alert[@type='List']"); foreach (XmlNode alertNode in alertNodes) { string alertTitle = alertNode.Attributes["title"].Value; string listTitle = alertNode.Attributes["list"].Value; string loginName = alertNode.Attributes["user"].Value; string objectType = alertNode.Attributes["object"].Value; bool isFolder = objectType.ToLower().Equals("folder"); if (!isFolder) { output.Append(string.Format("user: {0,20}...", loginName)); try { SPList list = web.Lists[listTitle]; SPClaimProviderManager cpm = SPClaimProviderManager.Local; SPClaim userClaim = cpm.ConvertIdentifierToClaim(loginName, SPIdentifierTypes.WindowsSamAccountName); SPUser user = web.EnsureUser(userClaim.ToEncodedString()); string eventType = alertNode.Attributes["event"].Value; SPEventType spEventType = (SPEventType)Enum.Parse(typeof(SPEventType), eventType); string eventFrequency = alertNode.Attributes["frequency"].Value; SPAlertFrequency spAlertFrequency = (SPAlertFrequency)Enum.Parse(typeof(SPAlertFrequency), eventFrequency); string type = alertNode.Attributes["type"].Value; SPAlertType spAlertType = (SPAlertType)Enum.Parse(typeof(SPAlertType), type); SPAlert newAlert = user.Alerts.Add(); newAlert.Title = alertTitle; newAlert.AlertType = spAlertType; newAlert.List = list; newAlert.DeliveryChannels = SPAlertDeliveryChannels.Email; newAlert.EventType = spEventType; newAlert.AlertFrequency = spAlertFrequency; newAlert.Status = SPAlertStatus.On; newAlert.Update(false); output.Append(string.Format("Complete" + Environment.NewLine)); } catch (Exception ex) { output.Append(string.Format("error: {0,20}" + Environment.NewLine, ex.Message)); } } } } }
private void RemoveAlerts(XmlNode siteNode, string url) { using (SPWeb web = new SPSite(url).OpenWeb()) { SPClaimProviderManager cpm = SPClaimProviderManager.Local; SPClaim userClaim = cpm.ConvertIdentifierToClaim("emirates\\s717981", SPIdentifierTypes.WindowsSamAccountName); SPUser tempUser = web.EnsureUser(userClaim.ToEncodedString()); web.AllowUnsafeUpdates = true; try { SPAlertCollection allAlerts = web.Alerts; List <Guid> alertsToDelete = new List <Guid>(); foreach (SPAlert spAlert in allAlerts) { alertsToDelete.Add(spAlert.ID); } Guid [] alerts = alertsToDelete.ToArray(); for (int i = 0; i < alerts.Length; i++) { SPAlert alert = allAlerts[alerts[i]]; alert.User = tempUser; alert.Status = SPAlertStatus.Off; alert.Update(); } foreach (Guid alertGuid in alertsToDelete) { allAlerts.Delete(alertGuid); } web.Update(); } catch (Exception ex) { Console.WriteLine(ex.Message); } web.AllowUnsafeUpdates = false; } }
static void Main(string[] args) { SPSite site = new SPSite("http://chiron"); SPWeb web = site.AllWebs["CodeDemo"]; SPUser user = web.CurrentUser; foreach (SPAlert alert in user.Alerts) { Debug.WriteLine(alert.AlertType); if (alert.AlertType == SPAlertType.List) { //user.Alerts.Delete(alert.ID); } } SPAlertCollection alerts = web.Alerts; SPList list = web.Lists["Documents"]; // get the lists alert template and apply that to the new alert SPAlertTemplate alertTemplate = list.AlertTemplate; alertTemplate.Name = list.AlertTemplate.Name; // setup the alert SPAlert a = alerts.Add(); a.AlertType = SPAlertType.List; a.AlertTemplate = alertTemplate; a.Title = "Demo Title"; a.EventType = SPEventType.Add; a.AlertFrequency = SPAlertFrequency.Immediate; a.AlwaysNotify = false; a.User = user; a.List = list; a.Update(true); }