public ActionResult Take(Int64 id, PollTakeFormModel model) { Poll poll = GetSession.Get<Poll>(id); if (poll != null && poll.Id == CurrentPollId) { try { Guid sessionId = Guid.NewGuid(); PollTaking pollTaking = new PollTaking() { Poll = poll, Employee = Portal.Helpers.EmployeesHelper.GetCurrentEmployee(), Department_id = CurrentPollDepartmentId.HasValue ? CurrentPollDepartmentId.Value : 0, Manager = CurrentPollManagerId.HasValue ? GetSession.Get<Employee>(CurrentPollManagerId.Value) : null, SessionId = sessionId }; GetSession.Save(pollTaking); Regex regex = new Regex(@"\[[0-9]+\]", RegexOptions.IgnoreCase); foreach (string key in Request.Form.AllKeys) { MatchCollection matches = regex.Matches(key); if (matches.Count > 0) { char[] charsToTrim = { '[', ']' }; long itemId = Convert.ToInt64(matches[0].Value.Trim(charsToTrim)); ; string value = this.Request.Form[key]; if (!String.IsNullOrWhiteSpace(value)) { PollItem item = GetSession.Get<PollItem>(itemId); EmployeePollItem employeePollItem = GetSession.QueryOver<EmployeePollItem>() .Where(epi => epi.Employee.Id == Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id && epi.PollItem.Id == item.Id) .Take(1) .SingleOrDefault(); if (employeePollItem == null || (poll.AnonymousUser != null && poll.AnonymousUser.Id == EmployeesHelper.GetCurrentEmployee().Id)) { employeePollItem = GetSession.QueryOver<EmployeePollItem>() .Where(epi => epi.Employee.Id == Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id && epi.PollItem.Id == item.Id && epi.SessionId == sessionId) .Take(1) .SingleOrDefault(); if (employeePollItem == null) { employeePollItem = new EmployeePollItem() { Employee = Portal.Helpers.EmployeesHelper.GetCurrentEmployee(), PollItem = item }; } } employeePollItem.PollTaking = pollTaking; // Irrelevant question if (key.ToLower().Contains("irrelevant")) { if (value.Equals("on", StringComparison.InvariantCultureIgnoreCase)) { employeePollItem.AnswerValue = -1; } } else { switch (item.Type) { case QuestionType.Open: employeePollItem.AnswerText = value; break; case QuestionType.Range: employeePollItem.AnswerValue = Convert.ToInt32(Convert.ToDecimal(value)); break; case QuestionType.Multiple: employeePollItem.AnswerValue = Convert.ToInt32(Convert.ToDecimal(value)); switch (employeePollItem.AnswerValue) { case 1: employeePollItem.Option1Count = 1; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 2: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 1; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 3: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 1; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 4: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 1; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 5: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 1; employeePollItem.Option6Count = 0; break; case 6: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 1; break; } break; } } employeePollItem.SessionId = sessionId; GetSession.Save(employeePollItem); } } } } catch { } Session["Poll_Id"] = null; Session["Poll_Department_Id"] = null; Session["Poll_Manager_Id"] = null; Session["Poll_LCID"] = null; return View("TakeEnd", new PollTakeEndFormModel() { Poll = poll, IsRightToLeft = CurrentPollLCID.HasValue ? CultureHelper.IsRightToLeft(CurrentPollLCID.Value) : true }); } else { return RedirectToAction("Index"); } }
public ActionResult Take(Int64 id, PollTakeFormModel model) { Poll poll = GetSession.Get <Poll>(id); if (poll != null && poll.Id == CurrentPollId) { try { Guid sessionId = Guid.NewGuid(); PollTaking pollTaking = new PollTaking() { Poll = poll, Employee = Portal.Helpers.EmployeesHelper.GetCurrentEmployee(), Department_id = CurrentPollDepartmentId.HasValue ? CurrentPollDepartmentId.Value : 0, Manager = CurrentPollManagerId.HasValue ? GetSession.Get <Employee>(CurrentPollManagerId.Value) : null, SessionId = sessionId }; GetSession.Save(pollTaking); Regex regex = new Regex(@"\[[0-9]+\]", RegexOptions.IgnoreCase); foreach (string key in Request.Form.AllKeys) { MatchCollection matches = regex.Matches(key); if (matches.Count > 0) { char[] charsToTrim = { '[', ']' }; long itemId = Convert.ToInt64(matches[0].Value.Trim(charsToTrim));; string value = this.Request.Form[key]; if (!String.IsNullOrWhiteSpace(value)) { PollItem item = GetSession.Get <PollItem>(itemId); EmployeePollItem employeePollItem = GetSession.QueryOver <EmployeePollItem>() .Where(epi => epi.Employee.Id == Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id&& epi.PollItem.Id == item.Id) .Take(1) .SingleOrDefault(); if (employeePollItem == null || (poll.AnonymousUser != null && poll.AnonymousUser.Id == EmployeesHelper.GetCurrentEmployee().Id)) { employeePollItem = GetSession.QueryOver <EmployeePollItem>() .Where(epi => epi.Employee.Id == Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id&& epi.PollItem.Id == item.Id && epi.SessionId == sessionId) .Take(1) .SingleOrDefault(); if (employeePollItem == null) { employeePollItem = new EmployeePollItem() { Employee = Portal.Helpers.EmployeesHelper.GetCurrentEmployee(), PollItem = item }; } } employeePollItem.PollTaking = pollTaking; // Irrelevant question if (key.ToLower().Contains("irrelevant")) { if (value.Equals("on", StringComparison.InvariantCultureIgnoreCase)) { employeePollItem.AnswerValue = -1; } } else { switch (item.Type) { case QuestionType.Open: employeePollItem.AnswerText = value; break; case QuestionType.Range: employeePollItem.AnswerValue = Convert.ToInt32(Convert.ToDecimal(value)); break; case QuestionType.Multiple: employeePollItem.AnswerValue = Convert.ToInt32(Convert.ToDecimal(value)); switch (employeePollItem.AnswerValue) { case 1: employeePollItem.Option1Count = 1; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 2: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 1; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 3: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 1; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 4: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 1; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 0; break; case 5: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 1; employeePollItem.Option6Count = 0; break; case 6: employeePollItem.Option1Count = 0; employeePollItem.Option2Count = 0; employeePollItem.Option3Count = 0; employeePollItem.Option4Count = 0; employeePollItem.Option5Count = 0; employeePollItem.Option6Count = 1; break; } break; } } employeePollItem.SessionId = sessionId; GetSession.Save(employeePollItem); } } } } catch { } Session["Poll_Id"] = null; Session["Poll_Department_Id"] = null; Session["Poll_Manager_Id"] = null; Session["Poll_LCID"] = null; return(View("TakeEnd", new PollTakeEndFormModel() { Poll = poll, IsRightToLeft = CurrentPollLCID.HasValue ? CultureHelper.IsRightToLeft(CurrentPollLCID.Value) : true })); } else { return(RedirectToAction("Index")); } }