public IActionResult Index()
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);

            Survey        s       = new Survey();
            List <Survey> surveys = s.GetAllSurveys(true);

            return(View("Index", surveys));
        }
        public IActionResult Admin()
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();

            UserConnect(ViewBag);

            if (!ViewBag.Logged)
            {
                return(RedirectToRoute(new { controller = "Membres", action = "Login" }));
            }

            if ((ViewBag.Statut != "Administrateur") && (ViewBag.Statut != "Coeur"))
            {
                return(RedirectToRoute(new { controller = "Membres", action = "Login" }));
            }


            Survey        s       = new Survey();
            List <Survey> surveys = s.GetAllSurveys(null);

            return(View("SurveysAdmin", surveys));
        }
        public IActionResult Vote(int?vote, int idSurvey)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);


            List <string> errors = new List <string>();

            if (vote == null)
            {
                errors.Add("Vous devez cocher une case pour voter!");
                ViewBag.errors = errors;
                Survey survey = new Survey {
                    Id = idSurvey
                };
                survey = survey.GetSurvey();

                Membres membre = new Membres(); //Récupérer le membre auteur du sondage
                membre = membre.GetMembreById(survey.IdCreateur);
                SurveyViewModel viewModel = new SurveyViewModel {
                    Survey = survey, Membre = membre
                };

                return(View("ViewSurvey", viewModel));
            }

            if (ViewBag.Logged)
            {
                AnswerByMembre answer = new AnswerByMembre {
                    IdMembre = Convert.ToInt32(ViewBag.Id), IdSurvey = idSurvey, IdAnswer = (int)vote
                };
                answer.SaveVoteMembre();
            }
            else
            {
                Visiteur   v = new Visiteur();
                string     remoteIpAddress = Convert.ToString(Request.HttpContext.Connection.RemoteIpAddress);
                AnswerByIp answer          = new AnswerByIp {
                    IdIp = v.GetIdIp(remoteIpAddress), IdAnswer = (int)vote, IdSurvey = idSurvey
                };
                answer.SaveVoteIdIp();

                CookieOptions option = new CookieOptions
                {
                    Expires  = DateTime.Now.AddDays(365),
                    HttpOnly = true
                };

                Response.Cookies.Append("Survey" + idSurvey, Convert.ToString(vote), option);
            }

            Survey s = new Survey {
                Id = idSurvey
            };

            s = s.GetSurvey();

            Membres m = new Membres(); //Récupérer le membre auteur du sondage

            m = m.GetMembreById(s.IdCreateur);
            List <Survey>         surveys = s.GetAllSurveys(true);
            SurveyResultViewModel result  = new SurveyResultViewModel {
                Survey = s, Surveys = surveys, Membre = m
            };

            return(View("ResultSurvey", result));
        }
        public IActionResult DisplaySurvey(int id)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);


            Survey s = new Survey {
                Id = id
            };

            s = s.GetSurvey();

            Membres m = new Membres(); //Récupérer le membre auteur du sondage

            m = m.GetMembreById(s.IdCreateur);

            SurveyViewModel viewModel = new SurveyViewModel {
                Survey = s, Membre = m
            };


            bool DejaVote; // Vérifier si déjà voté

            if (ViewBag.Logged)
            {
                AnswerByMembre answer   = new AnswerByMembre();
                int            IdMembre = Convert.ToInt32(ViewBag.Id);
                DejaVote = answer.VerifVoteMembre(IdMembre, id);
            }
            else
            {
                Visiteur   v = new Visiteur();
                string     remoteIpAddress = Convert.ToString(Request.HttpContext.Connection.RemoteIpAddress);
                AnswerByIp answer          = new AnswerByIp();

                bool VerifByIp = answer.VerifVoteIp(v.GetIdIp(remoteIpAddress), id);
                bool VerifByCookie;

                if (Request.Cookies["Survey" + id] == null)
                {
                    VerifByCookie = false;
                }
                else
                {
                    VerifByCookie = true;
                }

                if (VerifByIp && VerifByCookie)
                {
                    DejaVote = true;
                }
                else
                {
                    DejaVote = false;
                }
            }

            if (DejaVote)
            {
                List <Survey>         surveys = s.GetAllSurveys(true);
                SurveyResultViewModel result  = new SurveyResultViewModel {
                    Survey = s, Surveys = surveys, Membre = m
                };
                return(View("ResultSurvey", result));
            }

            return(View("ViewSurvey", viewModel));
        }