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");
            }
        }
Esempio n. 2
0
        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 Show(Int64 id, List<int> optionResult)
        {
            Poll poll = GetSession.Get<Poll>(id);
            for (int i = 0; i < optionResult.Count; i++)
            {
                PollItem item = poll.PollItems[i];

                //session.CreateSQLQuery(string.Format("Update {0}PollItem set Option{1}Count=Option{1}Count+1 where Id={2}",
                //  MvcApplication.Config("table.Prefix"),
                //  optionResult[i],
                //  item.Id)).ExecuteUpdate();

                Session["optionResult" + DateTime.Now.Date.ToShortDateString()] = "done";

                try
                {
                    EmployeePollItem employeePollItem = GetSession.QueryOver<EmployeePollItem>()
                        .Where(epi => epi.Employee.Id == Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id &&
                            epi.PollItem.Id == item.Id)
                        .SingleOrDefault();

                    string query = String.Empty;

                    if (employeePollItem == null)
                    {
                        employeePollItem = new EmployeePollItem()
                        {
                            Employee = Portal.Helpers.EmployeesHelper.GetCurrentEmployee(),
                            PollItem = item
                        };
                    }
                    switch (optionResult[i])
                    {
                        case 1:
                            employeePollItem.Option1Count = 1;
                            employeePollItem.Option2Count = 0;
                            employeePollItem.Option3Count = 0;
                            employeePollItem.Option4Count = 0;
                            employeePollItem.Option5Count = 0;
                            employeePollItem.Option6Count = 0;
                            //query = string.Format("Update {0}EmployeePollItem set Option1Count=1,Option2Count=0,Option3Count=0,Option4Count=0,Option5Count=0,Option6Count=0 where Id={1}",
                            //            MvcApplication.Config("table.Prefix"),
                            //            employeePollItem.Id);
                            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;
                    }

                    GetSession.Save(employeePollItem);

                    //query = string.Format("INSERT INTO [{0}EmployeePollItem] ([Employee_id],[PollItem_id],[Option{1}Count]) VALUES ({2}, {3}, {4})",
                    //  MvcApplication.Config("table.Prefix"),
                    //  optionResult[i],
                    //  Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id,
                    //  item.Id,
                    //  1);

                    //GetSession.CreateSQLQuery(query).ExecuteUpdate();
                }
                catch { }
            }

            return RedirectToAction("PollResult", new { id = id });
        }
Esempio n. 4
0
        public ActionResult Show(Int64 id, List <int> optionResult)
        {
            Poll poll = GetSession.Get <Poll>(id);

            for (int i = 0; i < optionResult.Count; i++)
            {
                PollItem item = poll.PollItems[i];

                //session.CreateSQLQuery(string.Format("Update {0}PollItem set Option{1}Count=Option{1}Count+1 where Id={2}",
                //  MvcApplication.Config("table.Prefix"),
                //  optionResult[i],
                //  item.Id)).ExecuteUpdate();

                Session["optionResult" + DateTime.Now.Date.ToShortDateString()] = "done";

                try
                {
                    EmployeePollItem employeePollItem = GetSession.QueryOver <EmployeePollItem>()
                                                        .Where(epi => epi.Employee.Id == Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id&&
                                                               epi.PollItem.Id == item.Id)
                                                        .SingleOrDefault();

                    string query = String.Empty;

                    if (employeePollItem == null)
                    {
                        employeePollItem = new EmployeePollItem()
                        {
                            Employee = Portal.Helpers.EmployeesHelper.GetCurrentEmployee(),
                            PollItem = item
                        };
                    }
                    switch (optionResult[i])
                    {
                    case 1:
                        employeePollItem.Option1Count = 1;
                        employeePollItem.Option2Count = 0;
                        employeePollItem.Option3Count = 0;
                        employeePollItem.Option4Count = 0;
                        employeePollItem.Option5Count = 0;
                        employeePollItem.Option6Count = 0;
                        //query = string.Format("Update {0}EmployeePollItem set Option1Count=1,Option2Count=0,Option3Count=0,Option4Count=0,Option5Count=0,Option6Count=0 where Id={1}",
                        //            MvcApplication.Config("table.Prefix"),
                        //            employeePollItem.Id);
                        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;
                    }

                    GetSession.Save(employeePollItem);

                    //query = string.Format("INSERT INTO [{0}EmployeePollItem] ([Employee_id],[PollItem_id],[Option{1}Count]) VALUES ({2}, {3}, {4})",
                    //  MvcApplication.Config("table.Prefix"),
                    //  optionResult[i],
                    //  Portal.Helpers.EmployeesHelper.GetCurrentEmployee().Id,
                    //  item.Id,
                    //  1);

                    //GetSession.CreateSQLQuery(query).ExecuteUpdate();
                }
                catch { }
            }

            return(RedirectToAction("PollResult", new { id = id }));
        }