Пример #1
0
 public void Update(object bSendMail)
 {
     if (bSendMail == Undefined.Value)
     {
         m_alert.Update();
     }
     else
     {
         m_alert.Update(TypeConverter.ToBoolean(bSendMail));
     }
 }
Пример #2
0
        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)); }
                }
            }
        }
Пример #3
0
        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)); }
                    }
                }
            }
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        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);
        }