public void UpsertVote(Vote vote)
        {
            var newDoc = new BsonDocument
            {
                { "IsUnvote", vote.IsUnvote },
                { "DateTime", vote.DateTime },
                { "Recipient", vote.Recipient },
                { "Voter", vote.Voter },
                { "ForumPostNumber", vote.ForumPostNumber },
                { "PostContentIndex", vote.PostContentIndex },
                { "ManuallyEdited", vote.ManuallyEdited },
                { "Day", vote.Day },            };

            var builder = Builders<BsonDocument>.Filter;
            var filter = builder.Eq("ForumPostNumber", vote.ForumPostNumber)
                & builder.Eq("PostContentIndex", vote.PostContentIndex)
                & builder.Eq("ManuallyEdited", false);

            Upsert(_votes, newDoc, filter);
        }
Exemple #2
0
        private bool IsValid(Vote vote, string recipientSubString)
        {
            if (!_players.Select(p => p.Name).Contains(vote.Recipient) && vote.IsUnvote == false)
            {
                var msg = string.Format(
                    "Not adding vote because recipient is not in the player list. Voter: {0}. Recipient: {1}. Forum Post Number: {2}. Recipient substring: {3}.",
                    vote.Voter,
                    vote.Recipient,
                    vote.ForumPostNumber,
                    recipientSubString);

                _repo.LogMessage(msg);

                return false;
            }
            else if (_players.Single(p => string.Equals(p.Name, vote.Voter)).Participating == false)
            {
                var msg = string.Format(
                    "Not adding vote because voter is not participating. Voter: {0}. Recipient: {1}. Forum Post Number: {2}. Recipient substring: {3}.",
                    vote.Voter,
                    vote.Recipient,
                    vote.ForumPostNumber,
                    recipientSubString);

                _repo.LogMessage(msg);

                return false;
            }

            return true;
        }