public Embed BuildParticipantStatsForCategoryEmbed(LeaderboardParticipant participant,
                                                           List <DetailedActivity> activities, string type, DateTime start,
                                                           DateTime end)
        {
            var categoryResult = _leaderboardResultService.GetTopResultsForCategory(
                new Dictionary <LeaderboardParticipant, List <DetailedActivity> > {
                { participant, activities }
            },
                type,
                x => x.Type == type);

            var embedBuilder = new EmbedBuilder()
                               .WithTitle(
                $"'{type}' stats for '{start:yyyy MMMM dd} - {end:yyyy MMMM dd}'")
                               .WithCurrentTimestamp()
                               .WithColor(Color.Gold);

            if (!categoryResult.ChallengeByChallengeResultDictionary.Any())
            {
                embedBuilder.WithDescription("Something went wrong");
                return(embedBuilder.Build());
            }

            foreach (var(categoryName, participantResults) in categoryResult.ChallengeByChallengeResultDictionary)
            {
                foreach (var participantResult in participantResults)
                {
                    embedBuilder.AddField(categoryName,
                                          OutputFormatters.ParticipantResultForChallenge(categoryName, participantResult.Value), true);
                }
            }

            return(embedBuilder.Build());
        }
        public Embed BuildLeaderboardEmbed(CategoryResult categoryResult, DateTime start, DateTime end)
        {
            var embedBuilder = new EmbedBuilder()
                               .WithTitle(
                $"'{categoryResult.Name}' leaderboard for '{start:yyyy MMMM dd} - {end:yyyy MMMM dd}'")
                               .WithCurrentTimestamp()
                               .WithColor(Color.Green);


            foreach (var(participant, participantResults) in categoryResult.ChallengeByChallengeResultDictionary)
            {
                embedBuilder.AddField(efb => efb.WithName("Category")
                                      .WithValue($"{participant}")
                                      .WithIsInline(false));
                var place = 1;
                foreach (var participantResult in participantResults)
                {
                    embedBuilder.AddField(efb => efb.WithValue(participantResult.Participant.GetDiscordMention())
                                          .WithName(
                                              $"{OutputFormatters.PlaceToEmote(place)} - {OutputFormatters.ParticipantResultForChallenge(participant, participantResult.Value)}")
                                          .WithIsInline(true));
                    place++;
                    if (place > 3)
                    {
                        break;
                    }
                }
            }

            return(embedBuilder.Build());
        }
Example #3
0
        public void RountripEncoding()
        {
            string html   = "<span>Test &nbsp; nbsp</span>";
            var    dom    = CQ.Create(html);
            var    output = dom.Render(OutputFormatters.Create(HtmlEncoders.Minimum)).Replace("" + (char)160, "&nbsp;");

            Assert.AreEqual(html, output);
        }
Example #4
0
        public void ClassAndStyleAsBoolean()
        {
            string html   = @"<span class="""" style="""">Test </span><div class style><br /></div>";
            var    dom    = CQ.Create(html);
            var    output = dom.Render(OutputFormatters.Create(HtmlEncoders.Minimum)).Replace("" + (char)160, "&nbsp;");

            Assert.AreEqual(@"<span style>Test </span><div style><br></div>", output);
        }
Example #5
0
        public void TextOnly2()
        {
            string html = "a < bsdf <>";
            var    cs   = CsQuery.CQ.Create(html);

            Assert.AreEqual("a &lt; bsdf &lt;&gt;", cs.Render());
            Assert.AreEqual("a &lt; bsdf &lt;&gt;", cs.Render(OutputFormatters.Create(HtmlEncoders.Minimum)));
        }
Example #6
0
 void Save()
 {
     lock (_lock)
     {
         var txt = Doc.Render(OutputFormatters.Create(HtmlEncoders.MinimumNbsp));
         txt = Regex.Replace(txt, @"\s*</head>", Environment.NewLine + "</head>");
         txt = Regex.Replace(txt, @"\s*</body>", Environment.NewLine + "</body>");
         File.WriteAllText(Path, txt);
     }
 }
Example #7
0
        public void TextOnly()
        {
            string html = "a<b";
            var    dom  = CQ.Create(html);

            Assert.AreEqual("a", dom.Render());

            html = "a < b";
            dom  = CQ.Create(html);
            //Assert.AreEqual("a < b", dom.Render(DomRenderingOptions.HtmlEncodingNone));
            Assert.AreEqual("a < b", dom.Render(OutputFormatters.Create(HtmlEncoders.None)));
        }
Example #8
0
        public void Render()
        {
            string textIn = "><&" + (char)160 + "æøå";
            var    dom    = CQ.CreateFragment("<span></span>");

            dom["span"].Text(textIn);

            var text = dom.Render();

            Assert.AreEqual("<span>&gt;&lt;&amp;&nbsp;&#230;&#248;&#229;</span>", text);

            //text = dom.Render(DomRenderingOptions.HtmlEncodingMinimum);
            text = dom.Render(OutputFormatters.Create(HtmlEncoders.Minimum));

            Assert.AreEqual("<span>&gt;&lt;&amp;" + (char)160 + "æøå</span>", text);

            var noEncoding = "<span>" + textIn + "</span>";

            //text = dom.Render(DomRenderingOptions.HtmlEncodingNone);
            text = dom.Render(OutputFormatters.Create(HtmlEncoders.None));
            Assert.AreEqual(noEncoding, text);
        }