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")); }
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("/")); }
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("/")); }
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 }); }
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")); } }
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")); } }
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")); } }
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 }); }
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("/")); }
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 }); }
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; } }
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; } }