/// <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 } }
/// <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; }
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); } }
/// <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); }
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 { } }
/// <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); }
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 { } }
/// <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; }
/// <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 } }
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); } }