Beispiel #1
0
        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;
        }
Beispiel #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)); }
                }
            }
        }
 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>();
 }
Beispiel #4
0
        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);
        }
Beispiel #5
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)); }
                    }
                }
            }
        }
Beispiel #6
0
        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)
                {
                }
            }
        }
Beispiel #9
0
 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);
        }