Ejemplo n.º 1
0
        public ActionResult Index([Bind(Include = "Question, Answers")] CreatePollViewModel cpvm)
        {
            if (ModelState.IsValid)
            {
                Question newQuestion = new Question();

                newQuestion.QuestionText = cpvm.Question;

                Random rnd = new Random();

                newQuestion.ShortURL = generateRandom(6, rnd);
                newQuestion.Password = generateRandom(6, rnd);

                newQuestion.CreatedDateTime = DateTime.Now;

                db.Questions.Add(newQuestion);

                db.SaveChanges();

                //int id = newQuestion.Id;

                Answer[] newAnswer = new Answer[cpvm.Answers.Length];

                for (int ndx = 0; ndx < cpvm.Answers.Length; ndx++)
                {
                    newAnswer[ndx] = new Answer();

                    newAnswer[ndx].QuestionID = newQuestion.Id;
                    newAnswer[ndx].AnswerText = cpvm.Answers[ndx].Value;

                    db.Answers.Add(newAnswer[ndx]);
                }

                db.SaveChanges();

                //PollViewModel pvm = new PollViewModel();
                //pvm.Question = cpvm.Question;
                //pvm.Answers = cpvm.Answers.Select(x => x.Value).ToArray();
                return(RedirectToAction("AdminPoll", new { password = newQuestion.Password }));
            }

            return(View());
        }
        public async Task <ActionResult <CreatePollViewModel> > GetCreatePollViewModel(long id, string zoekterm)
        {
            CreatePollViewModel createPollVM = new CreatePollViewModel();
            var alleGebruikers = await _context.Gebruikers.Where(g => g.GebruikerID != id).ToListAsync();

            var VriendenVerzonden            = from a in _context.Vrienden.Where(v => v.Bevestigd == true && v.VerzenderID == id) select a;
            var VriendenOntvangen            = from a in _context.Vrienden.Where(v => v.Bevestigd == true && v.OntvangerID == id) select a;
            var enkelVriendGebruikers        = new List <Gebruiker>();
            var gebruikersMetZoektermVoldaan = new List <Gebruiker>();
            var vriendGebruikerIDs           = new List <long?>();

            foreach (var vriend in VriendenVerzonden)
            {
                vriendGebruikerIDs.Add(vriend.OntvangerID);
            }
            foreach (var vriend in VriendenOntvangen)
            {
                vriendGebruikerIDs.Add(vriend.VerzenderID);
            }

            if (zoekterm != "")
            {
                gebruikersMetZoektermVoldaan = alleGebruikers.Where(g => g.Gebruikersnaam.Contains(zoekterm)).ToList();
                foreach (var gebruiker in gebruikersMetZoektermVoldaan)
                {
                    if (vriendGebruikerIDs.Contains(gebruiker.GebruikerID))
                    {
                        enkelVriendGebruikers.Add(gebruiker);
                    }
                }
                createPollVM.GebruikersOpZoekterm = enkelVriendGebruikers;
            }

            createPollVM.AlleVrienden = alleGebruikers;

            return(createPollVM);
        }
Ejemplo n.º 3
0
        public ActionResult Index([Bind(Include = "Question, Answers, ShortURL")] CreatePollViewModel cpvm)
        {
            var currUserID = -1;

            if (User.Identity.IsAuthenticated)
            {
                currUserID = db.Users.First(x => x.Email == User.Identity.Name).UserID;
            }

            if (db.Questions.Any(q => q.ShortURL == cpvm.ShortURL && q.CreatedByUserID != currUserID))
            {
                ModelState.AddModelError("ShortURL", "ShortURL in use..Maybe you forgot to login?");
            }

            if (ModelState.IsValid)
            {
                Question newQuestion = new Question();

                newQuestion.QuestionText = cpvm.Question.ToString().Replace(System.Environment.NewLine, "<br />");

                Random rnd = new Random();

                if (cpvm.ShortURL == null)
                {
                    newQuestion.ShortURL = generateRandom(6, rnd);
                }
                else
                {
                    newQuestion.ShortURL = cpvm.ShortURL;
                }

                newQuestion.Password = generateRandom(6, rnd);

                newQuestion.CreatedDateTime = DateTime.Now;

                if (User.Identity.IsAuthenticated)
                {
                    User u = db.Users.First(x => x.Email == User.Identity.Name);
                    newQuestion.CreatedByUserID = u.UserID;
                }

                newQuestion.Active = true;
                db.Questions.Add(newQuestion);

                db.SaveChanges();

                //int id = newQuestion.Id;

                cpvm.Answers = cpvm.Answers.Where(x => !string.IsNullOrEmpty(x.Value)).ToArray();

                Answer[] newAnswer = new Answer[cpvm.Answers.Length];

                for (int ndx = 0; ndx < cpvm.Answers.Length; ndx++)
                {
                    newAnswer[ndx] = new Answer();

                    newAnswer[ndx].QuestionID = newQuestion.QuestionID;
                    newAnswer[ndx].AnswerText = cpvm.Answers[ndx].Value;

                    db.Answers.Add(newAnswer[ndx]);
                }

                db.SaveChanges();

                //PollViewModel pvm = new PollViewModel();
                //pvm.Question = cpvm.Question;
                //pvm.Answers = cpvm.Answers.Select(x => x.Value).ToArray();
                //return RedirectToAction("AdminPoll", new { password = newQuestion.Password });

                if (User.Identity.IsAuthenticated)
                {
                    return(RedirectToAction("ManagePolls"));
                }
                else
                {
                    return(RedirectToAction("AdminPoll", new { password = newQuestion.Password }));
                }
            }

            return(View());
        }