コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="dAlert"></param>
 internal void DeleteAlerts(string alertID, MailTemplateManager mtManager)
 {
     try
     {
         SPListItem alertItem = null;
         //Delete the alert
         if (!string.IsNullOrEmpty(alertID))
         {
             alertItem = this.alertList.GetItemById(Convert.ToInt32(alertID));
             if (alertItem != null)
             {
                 try
                 {
                     alertItem.Delete();
                     //Delte the template objects for the alerts
                     mtManager.DeleteTemplateUsageObjects(alertID);
                 }
                 catch
                 {
                     //error occured while deleting alert
                 }
             }
         }
         else
         {
             //Alert Id is null or empty
         }
     }
     catch
     {
         //Error occured while deleting alert
     }
 }
コード例 #2
0
ファイル: AlertManager.cs プロジェクト: karayakar/SharePoint
        /// <summary>
        /// Get the alerts based on event type
        /// </summary>
        /// <param name="listItem"></param>
        /// <param name="eventType"></param>
        /// <param name="mTManager"></param>
        /// <returns></returns>
        internal IList<Alert> GetAlertForList(SPListItem listItem, AlertEventType eventType, MailTemplateManager mTManager)
        {
            IList<Alert> alerts = new List<Alert>();
            try
            {
                if (alertList != null)
                {
                    //TODO: write a caml query to get the alerts based eventtype
                    StringBuilder stringBuilder = new StringBuilder();
                    stringBuilder.Append("<Where>");
                    stringBuilder.AppendFormat(
                       "<And>" +
                            "<And>" +
                                "<And>" +
                                    "<Eq>" +
                                        "<FieldRef Name=\"{0}\"/>" +
                                        "<Value Type=\"Text\">{1}</Value>" +
                                   "</Eq>" +
                                   "<Eq>" +
                                        "<FieldRef Name=\"{2}\"/>" +
                                        "<Value Type=\"Text\">{3}</Value>" +
                                   "</Eq>" +
                                "</And>" +
                                "<Contains>" +
                                    "<FieldRef Name=\"{4}\"/>" +
                                    "<Value Type=\"Choice\">{5}</Value>" +
                               "</Contains>" +
                            "</And>" +
                             "<Or>" +
                            "<Eq>" +
                                "<FieldRef Name=\"{6}\"/>" +
                                "<Value Type=\"Text\">0</Value>" + 
                            "</Eq>" +
                             "<Eq>" +
                             "<FieldRef Name=\"{6}\"/>" +
                             "<Value Type=\"Text\">{7}</Value>" +
                             "</Eq>" +
                             "</Or>" + 
                        "</And>", new object[] { "WebID", listItem.ParentList.ParentWeb.ID, "ListID", listItem.ParentList.ID, "EventType", eventType, "ItemID", "0" });
                    stringBuilder.Append("</Where>");

                    SPQuery query = new SPQuery();
                    query.Query = stringBuilder.ToString();
                    
                    SPListItemCollection  lItemCollection = alertList.GetItems(query);

                    foreach (SPListItem item in lItemCollection) 
                    {
                        alerts.Add(new Alert(item, mTManager));
                    }
                }
            }
            catch
            {

            }
            return alerts;
        }
コード例 #3
0
        private void ExecuteReceivedEvent(AlertEventType eventType, SPItemEventProperties properties)
        {
            LogManager.write("Entered in to ExecuteReceivedEvent with event type" + eventType);
            try
            {
                using (SPWeb web = properties.OpenWeb())
                {
                    //TODO we have to check is feature activated for this site or not
                    AlertManager        alertManager        = new AlertManager(web.Site.Url);
                    MailTemplateManager mailTemplateManager = new MailTemplateManager(web.Site.Url);
                    IList <Alert>       alerts        = alertManager.GetAlertForList(properties.ListItem, eventType, mailTemplateManager);
                    Notifications       notifications = new Notifications();
                    foreach (Alert alert in alerts)
                    {
                        if (eventType != AlertEventType.DateColumn)
                        {
                            if (alert.IsValid(properties.ListItem, eventType, properties))
                            {
                                try
                                {
                                    if (alert.SendType == SendType.ImmediateAlways)
                                    {
                                        notifications.SendMail(alert, eventType, properties.ListItem, FinalBody);
                                    }
                                    else if (alert.SendType == SendType.ImmediateBusinessDays)
                                    {
                                        if (alert.ImmediateBusinessDays.Contains((WeekDays)DateTime.UtcNow.DayOfWeek))
                                        {
                                            if (alert.BusinessStartHour <= Convert.ToInt32(DateTime.UtcNow.Hour) && alert.BusinessendtHour >= Convert.ToInt32(DateTime.UtcNow.Hour))
                                            {
                                                notifications.SendMail(alert, eventType, properties.ListItem, FinalBody);
                                            }
                                            else
                                            {
                                                return;
                                            }
                                        }
                                    }

                                    else
                                    {
                                        CreateDelayedAlert(alert, eventType, properties, alertManager);
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                }
            }
            catch (System.Exception Ex)
            {
                LogManager.write("Error occured white excuting event receiver" + Ex.Message);
            }
        }
コード例 #4
0
        /// <summary>
        /// Get Alert from its item id
        /// </summary>
        /// <param name="alertId"></param>
        /// <param name="mtManager"></param>
        /// <returns></returns>
        internal Alert GetAlertFromID(string alertId, MailTemplateManager mtManager)
        {
            Alert alert = null;

            try
            {
                SPListItem item = this.alertList.GetItemById(Convert.ToInt32(alertId));
                alert = new Alert(item, mtManager);
            }
            catch
            {
                //error occured while entering
            }
            return(alert);
        }
コード例 #5
0
ファイル: Alert.cs プロジェクト: karayakar/SharePoint
        public Alert(SPListItem listItem, MailTemplateManager mailTemplateManager)
        {
            try
            {
                ///Basic information we are saving for Alert in Alert listing List
                //Title  Single line of text  
                //WebID  Single line of text  
                //ListID  Single line of text  
                //ItemID  Single line of text  
                //WhenToSend  Choice  
                //DetailInfo  Multiple lines of text  
                //Owner  Person or Group  
                //EventType  Choice 
                if (mailTemplateManager == null)
                {
                    mailTemplateManager = new MailTemplateManager(listItem.ParentList.ParentWeb);
                }
                else
                {
                    this.templateManager = mailTemplateManager;
                }

                this.id = Convert.ToString(listItem.ID);
                this.title = Convert.ToString(listItem["Title"]);
                this.webId = Convert.ToString(listItem[ListAndFieldNames.settingsListWebIdFieldName]);
                this.listId = Convert.ToString(listItem[ListAndFieldNames.settingsListListIdFieldName]);
                this.itemId = Convert.ToString(listItem[ListAndFieldNames.settingsListItemIdFieldName]);
                

                //Event Type Registered
                string stralerttype = Convert.ToString(listItem[ListAndFieldNames.settingsListEventTypeFieldName]);
                if (stralerttype.Contains(AlertEventType.ItemAdded.ToString()))
                    this.AlertType.Add(AlertEventType.ItemAdded);
                if (stralerttype.Contains(AlertEventType.ItemDeleted.ToString()))
                    this.AlertType.Add(AlertEventType.ItemDeleted);
                if (stralerttype.Contains(AlertEventType.ItemUpdated.ToString()))
                    this.AlertType.Add(AlertEventType.ItemUpdated);
                if (stralerttype.Contains(AlertEventType.DateColumn.ToString()))
                    this.AlertType.Add(AlertEventType.DateColumn);

                               
                if (mailTemplateManager != null)
                {
                    //Assign Mailtemplate Manager
                    //this.templateManager = mailTemplateManager;
                    this.templateObjects = templateManager.GetTemplateUsageObjects(this.id);
                }

                //Get the general aleret info and Conditions
                string metaXML = Convert.ToString(listItem[ListAndFieldNames.settingsListDetailInfoFieldName]);
                DeSerializeMetaData(metaXML);


                CaliculateSendType();
                //Send type
                //if (Convert.ToString(listItem[ListAndFieldNames.settingsListWhenToSendFieldName] )== Convert.ToString(SendType.Immediate))
                //{

                //}

            }
            catch
            { }
        }
コード例 #6
0
        /// <summary>
        /// Get the alerts based on event type
        /// </summary>
        /// <param name="listItem"></param>
        /// <param name="eventType"></param>
        /// <param name="mTManager"></param>
        /// <returns></returns>
        internal IList <Alert> GetAlertForList(SPListItem listItem, AlertEventType eventType, MailTemplateManager mTManager)
        {
            IList <Alert> alerts = new List <Alert>();

            try
            {
                if (alertList != null)
                {
                    //TODO: write a caml query to get the alerts based eventtype
                    StringBuilder stringBuilder = new StringBuilder();
                    stringBuilder.Append("<Where>");
                    stringBuilder.AppendFormat(
                        "<And>" +
                        "<And>" +
                        "<And>" +
                        "<Eq>" +
                        "<FieldRef Name=\"{0}\"/>" +
                        "<Value Type=\"Text\">{1}</Value>" +
                        "</Eq>" +
                        "<Eq>" +
                        "<FieldRef Name=\"{2}\"/>" +
                        "<Value Type=\"Text\">{3}</Value>" +
                        "</Eq>" +
                        "</And>" +
                        "<Contains>" +
                        "<FieldRef Name=\"{4}\"/>" +
                        "<Value Type=\"Choice\">{5}</Value>" +
                        "</Contains>" +
                        "</And>" +
                        "<Or>" +
                        "<Eq>" +
                        "<FieldRef Name=\"{6}\"/>" +
                        "<Value Type=\"Text\">0</Value>" +
                        "</Eq>" +
                        "<Eq>" +
                        "<FieldRef Name=\"{6}\"/>" +
                        "<Value Type=\"Text\">{7}</Value>" +
                        "</Eq>" +
                        "</Or>" +
                        "</And>", new object[] { "WebID", listItem.ParentList.ParentWeb.ID, "ListID", listItem.ParentList.ID, "EventType", eventType, "ItemID", "0" });
                    stringBuilder.Append("</Where>");

                    SPQuery query = new SPQuery();
                    query.Query = stringBuilder.ToString();

                    SPListItemCollection lItemCollection = alertList.GetItems(query);

                    foreach (SPListItem item in lItemCollection)
                    {
                        alerts.Add(new Alert(item, mTManager));
                    }
                }
            }
            catch
            {
            }
            return(alerts);
        }
コード例 #7
0
        public Alert(SPListItem listItem, MailTemplateManager mailTemplateManager)
        {
            try
            {
                ///Basic information we are saving for Alert in Alert listing List
                //Title  Single line of text
                //WebID  Single line of text
                //ListID  Single line of text
                //ItemID  Single line of text
                //WhenToSend  Choice
                //DetailInfo  Multiple lines of text
                //Owner  Person or Group
                //EventType  Choice
                if (mailTemplateManager == null)
                {
                    mailTemplateManager = new MailTemplateManager(listItem.ParentList.ParentWeb);
                }
                else
                {
                    this.templateManager = mailTemplateManager;
                }

                this.id     = Convert.ToString(listItem.ID);
                this.title  = Convert.ToString(listItem["Title"]);
                this.webId  = Convert.ToString(listItem[ListAndFieldNames.settingsListWebIdFieldName]);
                this.listId = Convert.ToString(listItem[ListAndFieldNames.settingsListListIdFieldName]);
                this.itemId = Convert.ToString(listItem[ListAndFieldNames.settingsListItemIdFieldName]);


                //Event Type Registered
                string stralerttype = Convert.ToString(listItem[ListAndFieldNames.settingsListEventTypeFieldName]);
                if (stralerttype.Contains(AlertEventType.ItemAdded.ToString()))
                {
                    this.AlertType.Add(AlertEventType.ItemAdded);
                }
                if (stralerttype.Contains(AlertEventType.ItemDeleted.ToString()))
                {
                    this.AlertType.Add(AlertEventType.ItemDeleted);
                }
                if (stralerttype.Contains(AlertEventType.ItemUpdated.ToString()))
                {
                    this.AlertType.Add(AlertEventType.ItemUpdated);
                }
                if (stralerttype.Contains(AlertEventType.DateColumn.ToString()))
                {
                    this.AlertType.Add(AlertEventType.DateColumn);
                }


                if (mailTemplateManager != null)
                {
                    //Assign Mailtemplate Manager
                    //this.templateManager = mailTemplateManager;
                    this.templateObjects = templateManager.GetTemplateUsageObjects(this.id);
                }

                //Get the general aleret info and Conditions
                string metaXML = Convert.ToString(listItem[ListAndFieldNames.settingsListDetailInfoFieldName]);
                DeSerializeMetaData(metaXML);


                CaliculateSendType();
                //Send type
                //if (Convert.ToString(listItem[ListAndFieldNames.settingsListWhenToSendFieldName] )== Convert.ToString(SendType.Immediate))
                //{

                //}
            }
            catch
            { }
        }
コード例 #8
0
ファイル: AlertManager.cs プロジェクト: karayakar/SharePoint
 /// <summary>
 /// Get Alert from its item id
 /// </summary>
 /// <param name="alertId"></param>
 /// <param name="mtManager"></param>
 /// <returns></returns>
 internal Alert GetAlertFromID(string alertId,MailTemplateManager mtManager)
 {
     Alert alert = null;
     try
     {
        SPListItem item = this.alertList.GetItemById(Convert.ToInt32(alertId));
        alert = new Alert(item, mtManager);
     }
     catch 
     { 
         //error occured while entering
     }
     return alert;
 }
コード例 #9
0
ファイル: AlertManager.cs プロジェクト: karayakar/SharePoint
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dAlert"></param>
        internal void DeleteAlerts(string alertID, MailTemplateManager mtManager)
        {
            try
            {
                SPListItem alertItem = null;
                //Delete the alert 
                if(!string.IsNullOrEmpty(alertID))
                {
                    alertItem = this.alertList.GetItemById(Convert.ToInt32(alertID));
                    if (alertItem != null)
                    {
                        try
                        {
                            alertItem.Delete();
                            //Delte the template objects for the alerts
                            mtManager.DeleteTemplateUsageObjects(alertID);

                        }
                        catch
                        {
                            //error occured while deleting alert
                        }
                    }
                }
                else
                {
                    //Alert Id is null or empty
                }
                
            }
            catch 
            {
                //Error occured while deleting alert
            }
        }
コード例 #10
0
       private void ExecuteReceivedEvent(AlertEventType eventType, SPItemEventProperties properties)
       {
           LogManager.write("Entered in to ExecuteReceivedEvent with event type" + eventType);
           try
           { 
               using (SPWeb web = properties.OpenWeb())
               {
                   //TODO we have to check is feature activated for this site or not
                   AlertManager alertManager = new AlertManager(web.Site.Url);
                   MailTemplateManager mailTemplateManager = new MailTemplateManager(web.Site.Url);
                   IList<Alert> alerts = alertManager.GetAlertForList(properties.ListItem ,eventType, mailTemplateManager);
                   Notifications notifications = new Notifications();
                   foreach (Alert alert in alerts)
                   {
                       if (eventType != AlertEventType.DateColumn)
                       {

                           if (alert.IsValid(properties.ListItem, eventType, properties))
                           {
                               try
                               {
                                   if (alert.SendType == SendType.ImmediateAlways)
                                   {

                                       notifications.SendMail(alert, eventType, properties.ListItem, FinalBody);
                                   }
                                   else if (alert.SendType == SendType.ImmediateBusinessDays)
                                   {
                                       if (alert.ImmediateBusinessDays.Contains((WeekDays)DateTime.UtcNow.DayOfWeek))
                                       {
                                           if (alert.BusinessStartHour <= Convert.ToInt32(DateTime.UtcNow.Hour) && alert.BusinessendtHour >= Convert.ToInt32(DateTime.UtcNow.Hour))
                                           {
                                               notifications.SendMail(alert, eventType, properties.ListItem, FinalBody);
                                           }
                                           else
                                           {
                                               return;
                                           }

                                       }
                                   }

                                   else
                                   {
                                       CreateDelayedAlert(alert, eventType, properties, alertManager);
                                   }
                               }
                               catch { }
                           }
                       }
                   }
               }
           }
           catch (System.Exception Ex)
           {
               LogManager.write("Error occured white excuting event receiver" + Ex.Message);
           }

       }