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