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); }
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; }