Beispiel #1
0
        public ActionResult <IEnumerable <PollAnswer> > PollVote(int userID, int pollAnswerID, int pollID)
        {
            //check if poll can have multiple votes
            if (_context.Polls.Find(pollID).SingleVote)
            {
                //check for existing vote for that poll if poll only has single vote option
                var pollAnswers = _context.PollAnswers.Where(e => e.PollID == pollID);
                var PollVotes   = new List <PollAnswerVote>();
                foreach (PollAnswer pa in pollAnswers)
                {
                    PollVotes.AddRange(_context.PollAnswerVotes.Where(e => e.PollAnswerID == pa.PollAnswerID && e.UserID == userID));
                }

                if (PollVotes != null)
                {
                    _context.PollAnswerVotes.RemoveRange(PollVotes);
                }
            }

            //create new vote
            PollAnswerVote pollAnswerVote = new PollAnswerVote();

            pollAnswerVote.PollAnswerID = pollAnswerID;
            pollAnswerVote.UserID       = userID;
            pollAnswerVote.User         = _context.Users.SingleOrDefault(e => e.UserID == userID);
            pollAnswerVote.PollAnswer   = _context.PollAnswers.SingleOrDefault(e => e.PollAnswerID == pollAnswerID);

            _context.PollAnswerVotes.Add(pollAnswerVote);
            _context.SaveChanges();

            return(Ok());
        }
Beispiel #2
0
 internal static ResourcePollAnswerVoteEntity Map(this PollAnswerVote pollAnswerVote)
 {
     return(new ResourcePollAnswerVoteEntity
     {
         id = pollAnswerVote.Id,
         resourcePollAnswerId = pollAnswerVote.AnswerId,
         userid = pollAnswerVote.UserId,
         createdTime = pollAnswerVote.CreatedTime,
     });
 }
Beispiel #3
0
        void IResourcesRepository.CreatePollAnswerVote(PollAnswerVote vote)
        {
            using (var dc = CreateContext())
            {
                // Don't add if the user has already voted in this poll.

                if (!HasVoted(dc, vote.UserId, vote.AnswerId))
                {
                    dc.ResourcePollAnswerVoteEntities.InsertOnSubmit(vote.Map());
                    dc.SubmitChanges();
                }
            }
        }
Beispiel #4
0
 void IPollsCommand.CreatePollAnswerVote(PollAnswerVote vote)
 {
     vote.Prepare();
     vote.Validate();
     _repository.CreatePollAnswerVote(vote);
 }