Пример #1
0
        public void DayScannerEndDayTest()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "John0",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div itemprop=""commentText"" class='post entry-content '>
                    <p>[end of day 10]</p>
            <p>The town lynch TehStu he is mafia!</p>
            <p>&#160;</p>
            <p>Well done town! After a day 1 cop lynch you managed to come back and succeed. Good work!</p>

                    <br />

                </div>"),
            };

            _target.UpdateDays(new ForumPost[] { post });

            var mock = Mock.Get<IRepository>(_repo);

            mock.Verify(m => m.UpsertDay(It.Is<Day>(d => d.Number == 10 && d.StartForumPostNumber == "100" && d.EndForumPostNumber == "1111111")));
        }
Пример #2
0
        public void DayScannerIgnoreCase()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Danster",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"[start of Day 1]"),
            };

            _target.UpdateDays(new ForumPost[] { post });

            var mock = Mock.Get<IRepository>(_repo);

            mock.Verify(m => m.UpsertDay(It.Is<Day>(d => d.Number == 1 && d.StartForumPostNumber == "1111111")));
        }
Пример #3
0
                </div>
"),
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 1);
            Assert.IsTrue(votes.Single().Recipient == "Mr. Viridian");
        }

        [TestMethod]
        public void NonBreakingSpaceTest()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Danster",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p>I finding TGP to be peculiarly quiet. His hammer hit still rankles with me, there were people in the thread discussing stuff, someone had mentioned that we might come on at half time of the footie, which I did only to find the day had ended.</p>
            <p>&#160;</p>
            <p>I want answers!</p>
            <p>&#160;</p>
Пример #4
0
                </div>
"),
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 1);
            Assert.IsTrue(votes.First().IsUnvote == true);
        }

        [TestMethod]
        public void NamesClashTest()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Mr. Blonde",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p class=""citation"">Mr. Cobalt said:<a class=""snapback right"" rel=""citation"" href=""http://www.rllmukforum.com/index.php?app=forums&amp;module=forums&amp;section=findpost&amp;pid=10594607""><img src=""http://www.rllmukforum.com/public/style_images/master/snapback.png""></a></p><blockquote class=""ipsBlockquote"" data-author=""Mr. Cobalt"" data-cid=""10594607"" data-time=""1443993646""><br>
            <div><br>
            <p>Bit of a mixed night obviously but having a lead on mafia is useful. Based on looking through his posts here are some interesting ones:</p>
            </div>
            </blockquote>
            <p>&#160;</p>
            <p>That's four players, I think (Charcoal, Blue, Maroon and Teal) you mention there as associated with Ochre. With four mafia and 16 players remaining, that's spreading your targeting quite wide.</p>
            <p>I find it interesting that&#160;Mr. Red reads the same one-sided interchange between Ochre and Maroon and comes to the exact opposite conclusion!</p>
            <p>&#160;</p>
            <p>Then there's Viridian and his Teal fetish. Viridian has targeted the same player two days running on very flimsy reasoning.</p>
            <p>&#160;</p>
            <p>Given that if he was the FBI agent and Teal the serial killer, he'd just immediately reveal, and we had two corpses overnight (so the roleblocker can't have any information), I don't understand the logic.</p>
            <p>&#160;</p>
            <p><strong class='bbc'>vote: Mr. Viridian</strong></p>
            <p>&#160;</p>
            <p>(I seem to have some internet explorer based cut and paste problem which is stopping me quoting easily.)</p>
Пример #5
0
                </div>
"),
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 1);
        }

        [TestMethod]
        public void GetVotesTestUnvoteNewLine()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "TehStu",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    May merge. Heh, posting on a phone you very no notification of other posts while you write yours.<br><br>
            Unvote<br><br>
            Who did you hide behind on night 2, plums? Or did you mean you hid behind bennette last night?
Пример #6
0
            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 1);
            Assert.IsTrue(votes.First().IsUnvote == false);
            Assert.IsTrue(votes.First().Recipient == "Don Wiskerando");
        }

        [TestMethod]
        public void GetVotesTestSemiColon()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "bennette98",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p class=""citation"">snowbind, on 16 Aug 2015 - 9:03 PM, said:<a class=""snapback right"" rel=""citation"" href=""http://www.rllmukforum.com/index.php?app=forums&amp;module=forums&amp;section=findpost&amp;pid=10525781""><img src=""http://www.rllmukforum.com/public/style_images/master/snapback.png""></a></p><blockquote class=""ipsBlockquote built"" data-author=""snowbind"" data-cid=""10525781"" data-time=""1439755414"">
            <div>
            <p>Due to the situatuon I am going to remove my gooner vote.<br><br><strong>unvote</strong></p>
            </div>
            </blockquote>
            <p>this doesn't make sense. You thought the character gooner was playing was scum, just because it is plums instead of gooner now doesn't mean he isn't potentially scum.</p>
            <p>&nbsp;</p>
            <p><strong>VOTE; Snowbind</strong></p>
Пример #7
0
 private static Vote CreateUnvote(ForumPost post, int index)
 {
     return new Vote
     {
         Voter = post.Poster,
         DateTime = post.DateTime,
         IsUnvote = true,
         Recipient = string.Empty,
         ForumPostNumber = post.ForumPostNumber,
         PostContentIndex = index,
         ManuallyEdited = false,
         Day = post.Day,
     };
 }
Пример #8
0
        private ForumPost ConvertElementToForumPost(IList<Day> days, HtmlNode postDiv)
        {
            var newPost = new ForumPost()
            {
                ManuallyEdited = false,
            };

            // Find poster
            newPost.Poster = postDiv.SelectSingleNode(".//span[@itemprop='creator name']").InnerText;

            // Find forum post number
            var postNumberElement = postDiv.SelectSingleNode(".//a[@itemprop='replyToUrl']");
            newPost.ForumPostNumber = postNumberElement.Attributes["data-entry-pid"].Value;

            // Find ThreadPostNumber
            var postNumberString = postNumberElement.InnerText.Trim();
            postNumberString = postNumberString.Replace("#", string.Empty);
            newPost.ThreadPostNumber = int.Parse(postNumberString);

            // Find Day
            newPost.Day = DetermineDay(newPost.ForumPostNumber);

            // Find DateTime
            var dateTimeString = postDiv.SelectSingleNode(".//abbr[@itemprop='commentTime']").InnerText;

            newPost.DateTime = ConvertDate(dateTimeString);

            // Find Content
            newPost.Content = RetrieveContent(postDiv);

            // Set LastScanned time
            newPost.LastScanned = DateTime.UtcNow;

            return newPost;
        }
Пример #9
0
            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 0);
        }

        [TestMethod]
        public void GetVotesTest6()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "PaulM",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p>You know what, I don't know if it'll make a difference or not, but&nbsp;<strong>unvote,&nbsp;</strong><strong>vote Liamness</strong></p>

                    <br>

                </div>
Пример #10
0
            Assert.IsTrue(votes.Count() == 1);
        }

        [TestMethod]
        public void GetVotesTest5()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "GMass",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    I voted for Timmo because I felt he was trying to direct the vote. I unvoted later. I reckon we have perhaps 1 Mafia kill and 1 serial killer kill here.    Dr Nick being too unsure to use his power and 1 of the Mafia teams not bothering in order to muddy the waters. <br>Merge<br><br>
            Hmm scratch that 1 Mafia and 1 failed recruitment perhaps.

                    <br>

                </div>
"),
Пример #11
0
            Assert.IsTrue(votes.Count() == 2);
        }

        [TestMethod]
        public void GetVotesTest4()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Timmo",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p class=""citation"">Dinobot, on 12 Aug 2015 - 7:42 PM, said:<a class=""snapback right"" rel=""citation"" href=""http://www.rllmukforum.com/index.php?app=forums&amp;module=forums&amp;section=findpost&amp;pid=10520532""><img src=""http://www.rllmukforum.com/public/style_images/master/snapback.png""></a></p><blockquote class=""ipsBlockquote built"" data-author=""Dinobot"" data-cid=""10520532"" data-time=""1439404955""><p>Well that's it done.<br>
            <br>
            <em><strong class=""bbc"">I'M WIGGUM!</strong></em><strong class=""bbc""><strong class=""bbc""><br>
            <br>
            Good lord what are the odds of this happening? Got to be about 48-1.<br>
            <br>
            Gods sake spork.</strong></strong></p></blockquote><strong class=""bbc"">[b]unvote</strong><br>
            <br>
            What?!

                    <br>

                </div>
"),
            };
Пример #12
0
        }

        [TestMethod]
        public void GetVotesTest3()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "snowbind",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p><strong>unvote</strong></p>
            <p>&#160;</p>
            <p><b>vote gmass</b></p>

                    <br>

                </div>
"),
            };
Пример #13
0
        // I apolgise to anyone ever attempting to read this method
        public IEnumerable<Vote> ScanForVotes(ForumPost post)
        {
            var votes = new List<Vote>();

            var content = post
                .Content
                .ToString()
                .FilterOutContentInQuoteBlocks()
                .FilterOutSpanTags()
                .ReplaceNonBreakingSpacesWithSpaces()
                .RemoveNewLineAndTabChars()
                .ToLower();

            var indexes = content.AllIndexesOf("vote");

            foreach (var index in indexes)
            {
                if (index == 0 || content[index - 1] == 'n')
                {
                    // if it says unvote, or drunkenvote! then:
                    if (content.IsInBold(index))
                    {
                        // And it is in bold, then:
                        votes.Add(CreateUnvote(post, index));
                    }
                    else if (index >= 6 && string.Equals(content.Substring(index - 6, 6), "<br>un"))
                    {
                        // or if the unvote is clearly on a new line, then:
                        votes.Add(CreateUnvote(post, index));
                    }
                }
                else if (((index + 4) <= content.Length && content[index + 4] == ':') ||
                         ((index + 5) <= content.Length && string.Equals(content.Substring(index + 4, 2), " :")) ||
                         ((index + 4) <= content.Length && content[index + 4] == ';') ||
                         ((index + 5) <= content.Length && string.Equals(content.Substring(index + 4, 2), " ;")))
                {
                    // else if there's a semi colon then we determine this is a vote
                    var recipientSubString = content.Substring(index + 4, Math.Min(10, content.Length - (index + 4)));

                    var successfulSplit = recipientSubString.Split(':').Count() == 2;

                    if (successfulSplit)
                    {
                        recipientSubString = recipientSubString.Split(':')[1];
                    }
                    else
                    {
                        recipientSubString = recipientSubString.Split(';')[1];
                    }

                    recipientSubString = recipientSubString.Trim();
                    recipientSubString = recipientSubString.Substring(0, Math.Min(MaxLengthOfRecipientSubString, recipientSubString.Length));

                    // If somebody writes vote: name, don't count it
                    if (!string.Equals(recipientSubString.Substring(0, Math.Min(4, recipientSubString.Length)), "name".Substring(0, Math.Min(4, recipientSubString.Length)), StringComparison.OrdinalIgnoreCase))
                    {
                        Vote newVote = CreateVote(post, index, recipientSubString);

                        if (IsValid(newVote, recipientSubString))
                        {
                            votes.Add(newVote);
                        }
                    }
                }
                else if ((index + 4) <= content.Length && content[index + 4] == ' ')
                {
                    // else if it has a space right after the word vote...
                    if (content.IsInBold(index))
                    {
                        // and it's in bold, then we assume it's a vote and what follows directly after is the recipient
                        var recipientSubString = content.Substring(index + 5, Math.Min(MaxLengthOfRecipientSubString, content.Length - (index + 5)));

                        Vote newVote = CreateVote(post, index, recipientSubString);

                        if (IsValid(newVote, recipientSubString))
                        {
                            votes.Add(newVote);
                        }
                    }
                }
            }

            return votes;
        }
Пример #14
0
 private Vote CreateVote(ForumPost post, int index, string recipientSubString)
 {
     return new Vote
     {
         Voter = post.Poster,
         DateTime = post.DateTime,
         IsUnvote = false,
         Recipient = DetermineRecipient(recipientSubString.Trim()),
         ForumPostNumber = post.ForumPostNumber,
         PostContentIndex = index,
         ManuallyEdited = false,
         Day = post.Day,
     };
 }
Пример #15
0
                    <br>

                </div>
"),
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 1);
            Assert.IsTrue(votes.Single().Recipient == "The Grand Pursuivant");
        }

        [TestMethod]
        public void NotParticipatingTest()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Moderator",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">
Пример #16
0
        public void GetVotesAliasTest()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Alask",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <blockquote class=""ipsBlockquote"" data-author=""footle"" data-cid=""10527247"" data-time=""1439839427""><br>
            <div><br>
            <p>Please keep voting. There's always the possibility that Bennette is the Reverend, though you'd assume the reverend would vote earlier.</p>
            </div>
            </blockquote>
            <p>&#160;</p>
            <p>Not entirely clear if that'd mean the vote counts reached and therefore day ends though or not though..</p>
            <p>&#160;</p>
            <p>anyway</p>
            <p>&#160;</p>
            <p><strong class='bbc'>unvote<p>
            <p>vote : john</strong></p>
            <p>&#160;</p>
            <p>should cover it shouldn't it?</p>

                    <br>

                </div>
"),
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 2);
            Assert.IsTrue(votes.Last().Recipient == "John0");
Пример #17
0
            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 2);
        }

        [TestMethod]
        public void GetVotesTest7()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Danster",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p>I think i'm going to <strong class=""bbc"">unvote</strong><br><br>Gos is a wasted vote. If he isn't lynched he will be whacked tonight or recruited (and so if he isn't killed overnight he'll have to be tomorrow) unless he's protected, or watched... ffs<br><br>I think snowbind is iffy, and Liamness has now done just enough to not be modkilled, spork still looks panicky AND if dino is right is our best chance of mafia.<br><br>I say {b]vote: spork[/b] if he's town, well then we can re-group and figure who was calling for his head, if he's mafia or a n other then jobs a good un.</p>

                    <br>
Пример #18
0
        public void UpsertPost(ForumPost post)
        {
            var newDoc = new BsonDocument
                {
                    { "ForumPostNumber", post.ForumPostNumber },
                    { "ThreadPostNumber", post.ThreadPostNumber },
                    { "Poster", post.Poster },
                    { "DateTime", post.DateTime.ToUniversalTime() },
                    { "Content", post.Content.ToString() },
                    { "Day", post.Day },
                    { "PageNumber", post.PageNumber },
                    { "LastScanned", post.LastScanned.ToUniversalTime() },
                    { "ManuallyEdited", post.ManuallyEdited },
                };

            var builder = Builders<BsonDocument>.Filter;
            var filter = builder.Eq("ForumPostNumber", post.ForumPostNumber);

            var existingPost = FindSpecificPost(post.ForumPostNumber);

            // In the case where the post already exists in the database, and the post has just been rescanned
            if (existingPost != null && post.ManuallyEdited == false)
            {
                // Then only upsert if it hasn't been previously edited
                filter = filter & builder.Eq("ManuallyEdited", false);
            }

            Upsert(_posts, newDoc, filter);
        }
Пример #19
0
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 2);
        }

        [TestMethod]
        public void GetVotesTest8()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "gospvg",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div class=""post_body"">

                    <p>After the post 234 to post 264 the following vote actions occurred against Dinobot</p>
            <p>&nbsp;</p>
            <p>TehStu voted (237)</p>
            <p>TehStu unvoted (247)</p>
            <p>Benny voted (253)</p>
            <p>Danster changed vote (256)</p>
            <p>Footle unvote (258)</p>
            <p>&nbsp;</p>
            <p>Awfully convenient of Danster &amp; Footle to unvote before 264, maybe they read the clue in post 234?</p>

                    <br>
Пример #20
0
"),
            };

            var votes = _voteScanner.ScanForVotes(post);

            Assert.IsTrue(votes.Count() == 0);
        }

        [TestMethod]
        public void GetVotesTest9()
        {
            ForumPost post = new ForumPost
            {
                DateTime = new DateTime(2015, 8, 18, 9, 0, 0),
                Day = 4,
                ForumPostNumber = "1111111",
                PageNumber = 50,
                Poster = "Strategos",
                ThreadPostNumber = 100,
                Content = new HtmlString(@"<div itemprop=""commentText"" class='post entry-content '>
                    <blockquote  class=""ipsBlockquote"">
            <p>&#160;</p>
            <p><span  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">I have explained my reasoning above. My vote for GMass was a weak one, I wasn't convinced but felt swayed by the crowd. When he started talking like he did I felt that he wasn't the SK. So I switched my vote to the next highest lynchee, a target I'd had my eye on for a while. It felt more comfortable to me and more correct.</span></p>
            <p  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">&#160;</p>
            <p  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">HAVING SAID THAT, wtf GMass are you doing voting for yourself? You've gone very anti-town in your play and I'm guessing you've gotten a bit bored of the game. If you are the SK then you're playing with fire, if you're not then you sound like you want out of the game, which is not pro-town.&#160;&#160; <img src='http://www.rllmukforum.com/public/style_emoticons/default/quote.gif' class='bbc_emoticon' alt=':quote:' /></p>
            <p  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">&#160;</p>
            <p  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">I'd like to know where you lot were Weds night?</p>
            <p  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">&#160;</p>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Uncle Mike</div>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Benny</div>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Don Wisk</div>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Strategos</div>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Plums</div>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">&#160;</div>
            <div  style=""margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Are you playing the game? Or were you happy to sit back and let the town lynch somebody you knew wasn't on your team? At least one of you is scum, I'm certain of it.</div>
            </blockquote>
            <p>&#160;</p>
            <p>&#160;</p>
            <p>Danster what are you saying ? &#160;Where was I ? I had already voted for Sith, I was sticking to my guns. While you were being swayed by the crowd and making weak votes apparently.</p>
            <p>&#160;</p>
            <p>GMass is a really easy target, I'm beginning to wonder if he really is just floundering around ? &#160;I don't know why he is voting for himself though. Is this clever or stupid ? I have no idea.</p>
            <p>&#160;</p>
            <p>I'm not sure about Gerry trying to sway gospvgs investigation. It strikes me as scummy. I'm not simply retaliating because he was accusing me but have a feeling it's the sort of thing the mafia would do.</p>
            <p>.&#160;</p>
            <p>&#160;</p>
            <blockquote  class=""ipsBlockquote"">
            <p>&#160;</p>
            <p>&#160;</p>
            <span  style=""color:rgb(40,40,40);font-family:helvetica, arial, sans-serif"">Popped iin to vote at the last minute isn't playing the game - is it?</span></blockquote>
            <p>&#160;</p>
            <p>&#160;GMass is gunning for Dino for the same reason - (why is not voting for him ?) . We do seem to have a few players that are just skirting the mod kill rule - this has been going on for a couple of days as well - it's not cricket. At the moment I'm happy to vote for Don W.</p>
            <p>&#160;</p>
            <p><strong>Vote:<span  style=""font-family:helvetica"">Don Wiskerando</span></strong></p>

                    <br />
Пример #21
0
 private void UpsertVotes(ForumPost relevantPost)
 {
     UpsertVotes(new ForumPost[] { relevantPost });
 }