Esempio n. 1
0
        public ActionResult FreeLink(string projectUrl)
        {
            SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == projectUrl).First();

            if (valid != null && valid.AccessType == (Int32)DbEnum.PollAccess.FreeLink)
            {
                HttpCookie cookie = Request.Cookies[MemberWorker.GetAnonymousCookieName()];
                if (cookie == null)
                {
                    Response.SetCookie(MemberWorker.SetAnonymousCookie());
                    return(RedirectToAction("Index", "Poll", new { poll = valid.projectUrl }));
                }
                else
                {
                    var cookieData = cookie["Data"];
                    var project    = Db.Context.Projects
                                     .Join(Db.Context.ProjectAccessVoters, p => p.Id, pav => pav.ProjectId, (p, pav) => new { p, pav })
                                     .Join(Db.Context.UserSets, z => z.pav.UserSetId, c => c.Id, (z, c) => new { z, c })
                                     .Where(x => x.c.CookieValue.Equals(cookieData))
                                     .Where(x => x.z.p.UrlCode.Equals(valid.projectUrl))
                                     .Select(x => new { x.z.pav.Id })
                                     .FirstOrDefault();
                    if (project == null)
                    {
                        valid.Status = true;
                        return(RedirectToAction("Index", "Poll", new { poll = valid.projectUrl }));
                    }
                }
            }
            return(RedirectToAction("/", "Home"));
        }
Esempio n. 2
0
        public ActionResult ValidateUser(string email, string pass, string projectUrl)
        {
            SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == projectUrl).First();

            if (valid != null && valid.AccessType == (Int32)DbEnum.PollAccess.UserSet)
            {
                var project = Db.Context.Projects
                              .Join(Db.Context.ProjectAccessVoters, p => p.Id, pav => pav.ProjectId, (p, pav) => new { p, pav })
                              .Join(Db.Context.UserSets, z => z.pav.UserSetId, c => c.Id, (z, c) => new { z, c })
                              .Join(Db.Context.Users, u => u.c.UserId, s => s.Id, (z, c) => new { z, c })
                              .Where(x => x.c.Email.Equals(email))
                              .Where(x => x.z.z.p.UrlCode.Equals(valid.projectUrl))
                              .Select(x => new { UserSetId = x.z.z.pav.Id, User = x.c })
                              .FirstOrDefault();
                if (project != null)
                {
                    var hasUser = MemberWorker.SignIn(email, pass);
                    if (hasUser == MemberWorker.LoginStatus.Success)
                    {
                        valid.UserIdentity = project.UserSetId;
                        valid.Status       = true;
                        return(RedirectToAction("Index", "Poll", new { poll = valid.projectUrl }));
                    }
                }
            }
            return(Redirect("/"));
        }
Esempio n. 3
0
        public ActionResult ValidateCode(string access_code, string projectUrl)
        {
            SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == projectUrl).First();

            if (valid != null && valid.AccessType == (Int32)DbEnum.PollAccess.CodeSet)
            {
                var project = Db.Context.Projects
                              .Join(Db.Context.ProjectAccessVoters, p => p.Id, pav => pav.ProjectId, (p, pav) => new { p, pav })
                              .Join(Db.Context.CodeSets, z => z.pav.CodeSetId, c => c.Id, (z, c) => new { z, c })
                              .Where(x => x.c.CodeText.Equals(access_code))
                              .Where(x => x.z.p.UrlCode.Equals(valid.projectUrl) && x.z.pav.IsUsed == false)
                              .Select(x => new { x.z.pav.Id })
                              .FirstOrDefault();
                if (project != null)
                {
                    valid.UserIdentity = project.Id;
                    valid.Status       = true;
                    return(RedirectToAction("Index", "Poll", new { poll = valid.projectUrl }));
                }
                else
                {
                    return(RedirectToAction("SetCode", "Admission", new { projectUrl = projectUrl, error = "Code has already been used or incorrect!" }));
                }
            }
            return(Redirect("/"));
        }
Esempio n. 4
0
        public ActionResult SaveResults(PollResult poll, Project project)
        {
            SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == project.UrlCode).FirstOrDefault();

            PollHelper.SavePoll(poll, valid, Request);
            ((List <SafeAdmission>)Session["admissions"]).Remove(valid);
            return(new JsonResult()
            {
                Data = null
            });
        }
Esempio n. 5
0
 public ActionResult SetUser(string projectUrl)
 {
     try
     {
         SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == projectUrl).First();
         if (valid != null && valid.AccessType == (Int32)DbEnum.PollAccess.UserSet)
         {
             return(View((object)projectUrl));
         }
         return(RedirectToAction("/", "Home"));
     }
     catch (Exception ex)
     {
         return(RedirectToAction("/", "Home"));
     }
 }
Esempio n. 6
0
        public ActionResult RouteAccess(string projectUrl)
        {
            try {
                String route   = String.Empty;
                var    project = Db.Context.Projects.Where(x => x.UrlCode == projectUrl).First();
                switch (project.PollAccess.Value)
                {
                case (Int32)DbEnum.PollAccess.CodeSet:
                    route = "SetCode";
                    break;

                case (Int32)DbEnum.PollAccess.UserSet:
                    route = "SetUser";
                    break;

                case (Int32)DbEnum.PollAccess.FreeLink:
                    route = "FreeLink";
                    break;

                default:
                    break;
                }
                SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == projectUrl).FirstOrDefault();
                if (valid == null)
                {
                    ((List <SafeAdmission>)Session["admissions"]).Add(new SafeAdmission()
                    {
                        projectUrl = projectUrl,
                        AccessType = project.PollAccess.Value
                    });
                }
                if (!String.IsNullOrEmpty(route))
                {
                    return(RedirectToAction(route, new { projectUrl = projectUrl }));
                }
                return(RedirectToAction("/", "Home"));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("/", "Home"));
            }
        }
Esempio n. 7
0
 public ActionResult SetCode(string projectUrl, string error)
 {
     try
     {
         if (error != null && error != String.Empty)
         {
             ViewBag.Error = error;
         }
         SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == projectUrl).First();
         if (valid != null && valid.AccessType == (Int32)DbEnum.PollAccess.CodeSet)
         {
             return(View(valid));
         }
         return(RedirectToAction("/", "Home"));
     }
     catch (Exception ex)
     {
         return(RedirectToAction("/", "Home"));
     }
 }
Esempio n. 8
0
        public ActionResult GetPoll(string poll)
        {
            if (PollHelper.CheckUrlProjectCode(poll))
            {
                SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == poll).FirstOrDefault();

                if (valid.projectUrl == poll)
                {
                    var data = PollHelper.GetPoll(poll);
                    return(new JsonResult()
                    {
                        Data = data
                    });
                }
            }
            return(new JsonResult()
            {
                Data = null
            });
        }
Esempio n. 9
0
 public ActionResult Index(string poll)
 {
     if (PollHelper.CheckUrlProjectCode(poll))
     {
         if (Session["admissions"] == null)
         {
             Session["admissions"] = new List <SafeAdmission>();
         }
         SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == poll).FirstOrDefault();
         if (valid != null && valid.Status)
         {
             return(View());
         }
         else
         {
             return(RedirectToAction("RouteAccess", "Admission", new { projectUrl = poll }));
         }
     }
     return(Redirect("/"));
 }
Esempio n. 10
0
 public ActionResult SetTimer(string poll)
 {
     if (PollHelper.CheckUrlProjectCode(poll))
     {
         SafeAdmission valid = ((List <SafeAdmission>)Session["admissions"]).Where(x => x.projectUrl == poll).FirstOrDefault();
         if (valid.projectUrl == poll)
         {
             Project data       = PollHelper.GetProjectByURL(poll);
             var     timerValue = PollHelper.GetTimerValue(data.Id);
             //NEED TO IMPLEMENT
             return(new JsonResult()
             {
                 Data = data
             });
         }
     }
     return(new JsonResult()
     {
         Data = null
     });
 }
Esempio n. 11
0
 private static Int32? GetVoterState(SafeAdmission admission, HttpRequestBase request)
 {
     if (admission.UserIdentity != null)
     {
         using (var Db = new Repository())
         {
             var v = Db.Context.ProjectAccessVoters.Where(x => x.Id == admission.UserIdentity).FirstOrDefault();
             v.IsUsed = true;
             v.VotedOn = DateTime.Now;
             Db.Save();
         }
         return admission.UserIdentity;
     }
     HttpCookie cookie = request.Cookies[MemberWorker.GetAnonymousCookieName()];
     if (cookie != null)
     {
         var val = cookie["Data"];
         var voter = new ProjectAccessVoter();
         using (var Db = new Repository())
         {
             UserSet user = new UserSet() { CookieValue = val };
             voter = new ProjectAccessVoter() { ProjectId = Db.Context.Projects.Where(x => x.UrlCode == admission.projectUrl).Select(x => x.Id).FirstOrDefault(), UserSet = user, IsUsed = true, ModifiedOn = DateTime.Now };
             voter.VotedOn = DateTime.Now;
             Db.Context.ProjectAccessVoters.Add(voter);
             Db.Save();
         }
         return voter.Id;
     }
     else
     {
         return null;
     }
 }
Esempio n. 12
0
        public static Boolean SavePoll(PollResult poll, SafeAdmission admission, HttpRequestBase request)
        {
            var voterId = GetVoterState(admission, request);
            try
            {
                using (var Db = new Repository())
                {

                    poll.PollResultQuestions.ForEach(el =>
                    {
                        el.Answers.ForEach(an =>
                        {
                            Db.Context.Results.Add(new EFModel.Result() { AnswerId = Int32.Parse(an), QuestionId = Int32.Parse(el.Id), VoterId = (Int32)voterId, ProjectId = Db.Context.Projects.Where(x => x.UrlCode == admission.projectUrl).Select(x => x.Id).FirstOrDefault() });
                        });

                    });
                    Db.Save();
                }
                return true;
            }
            catch (Exception ex)
            {
                using (var Db = new Repository())
                {

                    var v = Db.Context.ProjectAccessVoters.Where(x => x.Id == voterId).FirstOrDefault();
                    v.IsUsed = false;
                    v.VotedOn = null;
                    Db.Save();
                }
                return false;
            }
        }