public static bool VoteForPoll(List<long> userAnswersIDs, IFeedStorage storage, long pollId, out string errorMessage) { errorMessage = string.Empty; storage.PollVote(SecurityContext.CurrentAccount.ID.ToString(), userAnswersIDs); var pollFeed = storage.GetFeed(pollId); if (pollFeed == null) { errorMessage = Resources.NewsResource.ErrorAccessDenied; return false; } return true; }
public static bool VoteForPoll(List <long> userAnswersIDs, IFeedStorage storage, long pollId, out string errorMessage) { errorMessage = string.Empty; storage.PollVote(SecurityContext.CurrentAccount.ID.ToString(), userAnswersIDs); var pollFeed = storage.GetFeed(pollId); if (pollFeed == null) { errorMessage = Resources.NewsResource.ErrorAccessDenied; return(false); } return(true); }
public void PollTest() { var userId = SecurityContext.CurrentAccount.ID.ToString(); var poll = new FeedPoll(); poll.Caption = "Poll1"; poll.Variants.Add(new FeedPollVariant() { Name = "v1" }); poll.Variants.Add(new FeedPollVariant() { Name = "v2" }); poll.Variants.Add(new FeedPollVariant() { Name = "v3" }); feedStorage.SaveFeed(poll, TODO, TODO); poll.Variants.RemoveAt(2); feedStorage.SaveFeed(poll, TODO, TODO); poll.Variants.Add(new FeedPollVariant() { Name = "v3" }); feedStorage.SaveFeed(poll, TODO, TODO); poll = new FeedPoll(); poll.Caption = "Poll2"; poll.PollType = FeedPollType.MultipleAnswer; poll.Variants.Add(new FeedPollVariant() { Name = "v1" }); feedStorage.SaveFeed(poll, TODO, TODO); var polls = feedStorage.GetFeeds(FeedType.Poll, Guid.Empty, 0, 0); Assert.AreEqual(2, polls.Count); var poll1 = (FeedPoll)feedStorage.GetFeed(polls[1].Id); Assert.AreEqual(3, poll1.Variants.Count); Assert.AreEqual("v1", poll1.Variants[0].Name); feedStorage.PollVote(userId, new[] { poll1.Variants[0].ID, poll1.Variants[1].ID }); var poll2 = (FeedPoll)feedStorage.GetFeed(polls[0].Id); Assert.AreEqual(FeedPollType.MultipleAnswer, poll2.PollType); Assert.AreEqual(1, poll2.Variants.Count); poll1 = (FeedPoll)feedStorage.GetFeed(poll1.Id); Assert.AreEqual(1, poll1.GetVariantVoteCount(poll1.Variants[0].ID)); Assert.AreEqual(1, poll1.GetVariantVoteCount(poll1.Variants[1].ID)); Assert.AreEqual(0, poll1.GetVariantVoteCount(poll1.Variants[2].ID)); Assert.IsTrue(poll1.IsUserVote(userId)); Assert.IsFalse(poll2.IsUserVote(userId)); feedStorage.RemoveFeed(poll1.Id); feedStorage.RemoveFeed(poll2.Id); }