public async Task <IEnumerable <Poll_dto> > GetPollsBeheerder(int userID)
        {
            //gebruikerID  == huidige gebruiker
            IEnumerable <Poll> Polls = await _context.Polls.Include(p => p.Antwoorden).ThenInclude(a => a.Stemmen).Include(p => p.PollGebruikers).ToListAsync();

            List <Poll_dto> pollModel = new List <Poll_dto>();

            foreach (var p in Polls)
            {
                foreach (var pg in p.PollGebruikers)
                {
                    if (pg.PollID == p.PollID && pg.UserID == userID)
                    {
                        if (pg.isAdmin == true)
                        {
                            Poll_dto poll = new Poll_dto();
                            poll.Naam       = p.Naam;
                            poll.PollID     = p.PollID;
                            poll.Antwoorden = new List <Antwoord_dto>();
                            foreach (var a in p.Antwoorden)
                            {
                                var antw = new Antwoord_dto();
                                antw.AntwoordID = a.AntwoordID;
                                antw.Naam       = a.Naam;
                                antw.Stemmen    = new List <Stem_dto>();


                                foreach (var s in a.Stemmen)
                                {
                                    antw.Stemmen.Add(new Stem_dto()
                                    {
                                        StemID = s.StemID, UserID = s.UserID, AntwoordID = s.AntwoordID
                                    });
                                }

                                poll.Antwoorden.Add(antw);
                            }
                            poll.Users = new List <PollGebruiker_dto>();
                            foreach (var u in p.PollGebruikers)
                            {
                                var pollUser = new PollGebruiker_dto();
                                pollUser.UserID  = u.UserID;
                                pollUser.PollID  = u.PollID;
                                pollUser.isAdmin = u.isAdmin;
                                poll.Users.Add(pollUser);
                            }

                            pollModel.Add(poll);
                        }
                    }
                }
            }


            return(pollModel);
        }
        public async Task <ActionResult <PollGebruiker_dto> > PostPollGebruiker(PollGebruiker_dto pollGebruiker)
        {
            var pg1 = new PollGebruiker()
            {
                UserID = pollGebruiker.UserID, PollID = pollGebruiker.PollID, isAdmin = pollGebruiker.isAdmin
            };

            _context.PollGebruiker.Add(pg1);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPollGebruiker", new { id = pg1.PollGebruikerID }, pg1));
        }
        public async Task <ActionResult <Poll_dto> > GetPoll(int id)
        {
            var p = await _context.Polls.Include(po => po.Antwoorden).ThenInclude(a => a.Stemmen).Include(po => po.PollGebruikers).FirstOrDefaultAsync(po => po.PollID == id);

            if (p == null)
            {
                return(NotFound());
            }

            Poll_dto poll = new Poll_dto();

            poll.Naam       = p.Naam;
            poll.PollID     = p.PollID;
            poll.Antwoorden = new List <Antwoord_dto>();
            foreach (var a in p.Antwoorden)
            {
                var antw = new Antwoord_dto();
                antw.AntwoordID = a.AntwoordID;
                antw.Naam       = a.Naam;
                antw.Stemmen    = new List <Stem_dto>();

                foreach (var s in a.Stemmen)
                {
                    antw.Stemmen.Add(new Stem_dto()
                    {
                        StemID = s.StemID, UserID = s.UserID, AntwoordID = s.AntwoordID
                    });
                }

                poll.Antwoorden.Add(antw);
            }
            poll.Users = new List <PollGebruiker_dto>();
            foreach (var u in p.PollGebruikers)
            {
                var pollUser = new PollGebruiker_dto();
                pollUser.UserID  = u.UserID;
                pollUser.PollID  = u.PollID;
                pollUser.isAdmin = u.isAdmin;
                poll.Users.Add(pollUser);
            }
            return(poll);
        }
        public async Task <ActionResult <PollGebruiker_dto> > PostPollGebruikerByUserIDAndPollID(PollGebruiker_dto pollGebruiker)
        {
            //als deze user al toegevoegd is aan poll -> null returnen
            //anders pollgebruiker toevoegen
            var pg = _context.PollGebruikers.FirstOrDefault(p => p.PollID == pollGebruiker.PollID && p.UserID == pollGebruiker.UserID);

            if (pg == null)
            {
                var pg1 = new PollGebruiker()
                {
                    UserID = pollGebruiker.UserID, PollID = pollGebruiker.PollID, isAdmin = pollGebruiker.isAdmin
                };
                _context.PollGebruiker.Add(pg1);
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetPollGebruiker", new { id = pg1.PollGebruikerID }, pg1));
            }
            else
            {
                return(null);
            }
        }