Esempio n. 1
0
        internal static List <NotificationTrigger> ParseNotificationTriggerResponse(int objectId, XDocument xmlResponse)
        {
            var xmlResponseContent = xmlResponse.Descendants("item").Select(x => new
            {
                Content = x.Element("content").Value,
                Id      = Convert.ToInt32(x.Element("objid").Value)
            }).ToList();

            var triggers = JsonDeserializer <NotificationTrigger> .DeserializeList(xmlResponseContent, e => e.Content,
                                                                                   (e, o) =>
            {
                o.SubId    = e.Id;
                o.ObjectId = objectId;
            }
                                                                                   );

            return(triggers);
        }
Esempio n. 2
0
        internal static List <NotificationTrigger> ParseNotificationTriggerResponse(Either <IPrtgObject, int> objectOrId, XDocument xmlResponse)
        {
            var xmlResponseContent = xmlResponse.Descendants("item").Select(x => new
            {
                Content = x.Element("content").Value,
                Id      = Convert.ToInt32(x.Element("objid").Value)
            }).ToList();

            for (var i = 0; i < xmlResponseContent.Count; i++)
            {
                var str = xmlResponseContent[i].Content;

                var m = Regex.Match(str, "\\\"objectlink\\\":\\\".+?>(.+?)<");

                if (m.Success)
                {
                    var parentName = m.Groups[1].Value;

                    var cleaned = WebUtility.HtmlEncode(parentName);

                    if (cleaned != parentName)
                    {
                        var newStr = str.Substring(0, m.Groups[1].Index) + cleaned + str.Substring(m.Groups[1].Index + m.Groups[1].Length);

                        xmlResponseContent[i] = new
                        {
                            Content = newStr,
                            Id      = xmlResponseContent[i].Id
                        };
                    }
                }
            }

            var triggers = JsonDeserializer <NotificationTrigger> .DeserializeList(xmlResponseContent, e => e.Content,
                                                                                   (e, o) =>
            {
                o.SubId    = e.Id;
                o.ObjectId = objectOrId.GetId();
            }
                                                                                   );

            return(triggers);
        }