Esempio n. 1
0
        private static XElement GetEntryElement(PodiumPluginUIEntry entryInfo, string templateXML, double currentY, uint currentPosition, bool stripFormatting)
        {
            StringBuilder playerRecordXml = new StringBuilder(templateXML);

            playerRecordXml.Replace("{[Y]}", currentY.ToString(CultureInfo.InvariantCulture));
            playerRecordXml.Replace("{[Rank]}", currentPosition + ".");
            playerRecordXml.Replace("{[Value]}", entryInfo.Value);

            string description = SecurityElement.Escape(entryInfo.Description);

            if (stripFormatting)
            {
                description = TMSPSPluginBase.StripTMColorsAndFormatting(description);
            }

            playerRecordXml.Replace("{[Description]}", description);

            return(XElement.Parse(playerRecordXml.ToString()));
        }
Esempio n. 2
0
        public static string GetRecordListManiaLinkPage(IList <PodiumPluginUIEntry> entries, string maniaLinkPageID, PodiumPluginSettings settings)
        {
            double totalHeight = Math.Abs(settings.EntryToContainerMarginY * 2) + Math.Abs(settings.EntryHeight * entries.Count) + Math.Abs(settings.EntryEndMargin);

            XElement mainTemplate       = XElement.Parse(settings.MainTemplate.Replace("{[ManiaLinkID]}", maniaLinkPageID).Replace("{[ContainerHeight}}", totalHeight.ToString(CultureInfo.InvariantCulture)).Replace("{[Title]}", settings.Title).Replace("{[X]}", settings.X.ToString(CultureInfo.InvariantCulture)));
            XElement rankingPlaceHolder = mainTemplate.Descendants("EntryPlaceHolder").First();
            double   currentY           = settings.EntryStartMargin;

            XElement lastInsertedNode = rankingPlaceHolder;

            for (uint i = 1; i <= entries.Count; i++)
            {
                PodiumPluginUIEntry entry          = entries[(int)i - 1];
                XElement            currentElement = GetEntryElement(entry, settings.EntryTemplate, currentY, i, settings.StripNickFormatting);
                lastInsertedNode.AddAfterSelf(currentElement);
                lastInsertedNode = currentElement;
                currentY        -= settings.EntryHeight;
            }

            rankingPlaceHolder.Remove();

            return(mainTemplate.ToString());
        }