コード例 #1
0
        public async Task <IActionResult> PutPollUser([FromRoute] long id, [FromBody] PollUser pollUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != pollUser.PollUserID)
            {
                return(BadRequest());
            }

            _context.Entry(pollUser).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PollUserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #2
0
        public async Task <ActionResult <PollUser> > PostPollUser(PollUser pollUser)
        {
            _context.PollUsers.Add(pollUser);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPollUser", new { id = pollUser.PollUserId }, pollUser));
        }
コード例 #3
0
        public ActionResult <Poll> AcceptPoll(int userID, int pollID)
        {
            //get the user
            var user = _context.Users.Include(inv => inv.PollUserInvites).SingleOrDefault(p => p.UserID == userID);

            if (user != null)
            {
                //remove the poll invite
                var invite = user.PollUserInvites.FirstOrDefault(p => p.PollID == pollID);

                _context.PollUserInvites.Remove(invite);

                //create a new polluser with the user and poll.
                PollUser pollUser = new PollUser()
                {
                    PollID    = invite.PollID,
                    UserID    = user.UserID,
                    PollOwner = false
                };

                _context.PollUsers.Add(pollUser);

                _context.SaveChanges();
                //return accepted poll.
                var poll = _context.Polls.FirstOrDefault(p => p.PollID == pollID);

                return(poll);
            }
            else
            {
                return(BadRequest());
            }
        }
コード例 #4
0
        public async Task <ActionResult <PollUser> > PostPollUser(PollUser pu)
        {
            _context.PollUsers.Add(pu);
            await _context.SaveChangesAsync();

            return(Ok(pu));
        }
コード例 #5
0
        public async Task <IActionResult> PutPollUser(PollUser pollUser)
        {
            pollUser.Accepted = true;
            _context.Entry(pollUser).Property("Accepted").IsModified = true;
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPollUser", new { id = pollUser.PollUserID }, pollUser));
        }
コード例 #6
0
ファイル: PollController.cs プロジェクト: midasw/polls-api
        public async Task <ActionResult <GetPollDto> > GetPoll(long id)
        {
            long userID = Convert.ToInt64(User.Claims.FirstOrDefault(c => c.Type == "UserID").Value);

            PollUser pu = _context.PollUsers.SingleOrDefault(x => x.PollID == id && x.UserID == userID);
            Poll     p  = _context.Polls.SingleOrDefault(p => p.PollID == id);

            if (pu == null && p.OwnerID != userID)
            {
                return(BadRequest(new { message = "You have no permission to view this poll. Get out of here you sneaky bastard!" }));
            }

            GetPollDto dto = await _context.Polls.Where(p => p.PollID == id).Select(p => new GetPollDto()
            {
                PollID  = p.PollID,
                Name    = p.Name,
                Answers = p.Answers.Select(a => new PollAnswerDto()
                {
                    AnswerID = a.AnswerID,
                    Answer   = a.Answer,
                    Votes    = a.Votes.Select(v => new PollVoteDto()
                    {
                        VoteID   = v.VoteID,
                        AnswerID = v.AnswerID,
                        User     = new GetUserDto()
                        {
                            UserID    = v.User.UserID,
                            Email     = v.User.Email,
                            Name      = v.User.Name,
                            Activated = v.User.Activated
                        }
                    })
                               .OrderBy(v => v.User.Name)
                               .ToList()
                })
                          .ToList()
            })
                             .FirstOrDefaultAsync();

            dto.Answers = dto.Answers.OrderByDescending(a => a.Votes.Count).ToList();
            return(Ok(dto));
        }
コード例 #7
0
        public async Task <IActionResult> PostPollUser([FromBody] PollUser pollUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Vriend vriend = await _context.Vriend.Where(v => v.VriendID == pollUser.UserID).SingleOrDefaultAsync();

            User user = await _context.Users.Where(u => u.UserName == vriend.UserName).SingleOrDefaultAsync();

            PollUser juistPollUser = new PollUser();

            juistPollUser.PollID = pollUser.PollID;
            juistPollUser.UserID = user.UserID;

            _context.PollUser.Add(juistPollUser);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPollUser", new { id = juistPollUser.PollUserID }, juistPollUser));
        }
コード例 #8
0
        public async Task <ActionResult <PollUser> > PostPollUser(PollUser pollUser)
        {
            var getPollUser = await _context.PollUsers.Include(u => u.User).Include(p => p.Poll).FirstOrDefaultAsync(p => p.User.UserID == pollUser.User.UserID && p.Poll.PollID == pollUser.Poll.PollID);

            if (getPollUser == null)
            {
                var insertPollUser = new PollUser
                {
                    Poll     = _context.Polls.Single(p => p.PollID == pollUser.Poll.PollID),
                    User     = _context.Users.Single(g => g.UserID == pollUser.User.UserID),
                    Accepted = pollUser.Accepted
                };
                _context.PollUsers.Add(insertPollUser);
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetPollUser", new { id = insertPollUser.PollUserID }, insertPollUser));
            }

            return(getPollUser);
        }
コード例 #9
0
        public async Task <IActionResult> PostPoll([FromBody] Poll poll)
        {
            var userID = User.Claims.FirstOrDefault(c => c.Type == "UserID").Value;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var pollUser = new PollUser();

            pollUser.Poll   = poll;
            pollUser.UserID = long.Parse(userID);
            pollUser.admin  = true;
            _context.PollUser.Add(pollUser);

            await _context.SaveChangesAsync();



            return(CreatedAtAction("GetPoll", new { id = poll.PollID }, poll));
        }