public void UpdateSp(SPEventType type) { int curSP = 0; DataLookupsCache.Instance.SearchIntByID(mDL.DataIDList[0], out curSP); if (type == SPEventType.REMOVE) { if (pastSP > curSP || (pastSP == 0 && curSP == 0)) { MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, string.Format(EB.Localizer.GetString("ID_codefont_in_LTChallengeSPCtrl_1368"), pastSP - curSP)); } } else if (type == SPEventType.DOUBLE) { if (pastSP * 2 == curSP) { MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, string.Format(EB.Localizer.GetString("ID_codefont_in_LTChallengeSPCtrl_1634"))); } } else if (type == SPEventType.ADD) { if (pastSP < curSP) { MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, string.Format(EB.Localizer.GetString("ID_codefont_in_LTChallengeSPCtrl_1870"), curSP - pastSP)); } } LTUIUtil.SetText(NumLabel, curSP.ToString()); pastSP = curSP; }
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 SubstitutionContext(Guid eventID, string eventData, SPList sourceList, int itemId, string modifierName, string receiverEmail, int alertCreatorId, SPEventType eventType) { Logger = Application.Current.Logger; m_eventType = eventType; m_sourceList = sourceList; m_modifierName = modifierName; this.eventID = eventID; Vars = new ContextVars(sourceList, itemId, modifierName, receiverEmail, alertCreatorId); FieldsValues = (!string.IsNullOrEmpty(eventData)) ? XDocument.Parse(eventData).Descendants("Field").Select(p => FieldChange.Create(p)).ToList() : new List <FieldChange>(); }
TemplateTypeEnum convertEventType(SPEventType type) { switch (type) { case SPEventType.All: return(TemplateTypeEnum.AllItemEvents); case SPEventType.Add: return(TemplateTypeEnum.ItemAdded); case SPEventType.Delete: return(TemplateTypeEnum.ItemRemoved); case SPEventType.Modify: return(TemplateTypeEnum.ItemUpdated); } return(TemplateTypeEnum.AllItemEvents); }
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)); } } } } }
SearchContext(SPList list, int itemId, string eventData, SPEventType type, string receiverEmail) { List = list; Type = convertEventType(type); ItemId = itemId; m_receiverEmail = receiverEmail; try { var item = list.GetItemById(itemId); ItemContentTypeId = item.ContentTypeId; } catch { ItemContentTypeId = new SPContentTypeId(XDocument.Parse(eventData).Root.Elements() .Where(p => p.Attributes("Name") != null && p.Attribute("Name").Value == "ContentTypeId").First().Attributes() .Where(p => p.Name == "Old" || p.Name == "New").First().Value); } }
public SubstitutionContext(string eventData, SPList sourceList, int itemId, string modifierName, string receiverEmail, int alertCreatorId, SPEventType eventType) : this(Guid.NewGuid(), eventData, sourceList, -1, null, null, -1, SPEventType.All) { }
private void Test_WithOneAssAndOneTemplateTypeAss(int TemplateEvents, TemplateStateEnum templateState, Association ass, string ItemCTId, SPEventType eventType, bool shouldFound) { var moleSourceList = CreateSourceListAllOnTheRootSite(ItemCTId, 1); var expected = CreateTemplate(TemplateEvents, templateState, new AssociationCollection { ass }); TemplateList.Add(expected); DefaultTemplatesManager target = new DefaultTemplatesManager(logger.Object, configManager.Object); ISearchContext context = SearchContext.Create(moleSourceList, 1, Properties.Resources.EventDataTskAdded, eventType, "*****@*****.**"); if (shouldFound) { var actual = target.GetTemplate(context); Assert.AreSame(expected, actual); } else { try { var actual = target.GetTemplate(context); Assert.Fail("shouldn't found any templates"); } catch (SeTemplateNotFound) { } } }
public static ISearchContext Create(SPList list, int itemId, string eventData, SPEventType type, string receiverEmail) { return(new SearchContext(list, itemId, eventData, type, receiverEmail)); }
internal GeneratedMessage GetMessageForItem(Guid eventID, SPList list, int ItemID, SPEventType type, string eventXML, string modifierName, string receiverEmail, int alertCreatorID) { ISearchContext search = SearchContext.Create(list, ItemID, eventXML, type, receiverEmail); var res = TemplateManager.GetTemplate(search); if (res != null) { Logger.WriteTrace("Found template:" + Environment.NewLine + res.ToString(), SeverityEnum.Trace); var substitutionContext = new SubstitutionContext(eventID, eventXML, list, ItemID, modifierName, receiverEmail, alertCreatorID, type); Logger.WriteTrace("XML data:" + Environment.NewLine + substitutionContext.GetXML(), SeverityEnum.Trace); return(new GeneratedMessage { Body = GetProcessedItem(substitutionContext, res.Body, MessageFieldType.ForBody), Subject = GetProcessedItem(substitutionContext, res.Subject, MessageFieldType.ForSubject), From = GetProcessedItem(substitutionContext, res.From, MessageFieldType.ForFrom), Replay = GetProcessedItem(substitutionContext, res.Replay, MessageFieldType.ForReplay) }); } else { Logger.WriteTrace("Found template is null", SeverityEnum.Error); } return(null); }