/// <summary>
        /// Function index to load list User
        /// </summary>
        /// <returns>List View</returns>
        public ActionResult Index()
        {
            if ((!IsInFunctionList(Constant.FunctionID.UserList_Admin)) && (!IsInFunctionList(Constant.FunctionID.UserList)))
            {
                return(this.RedirectToAction("Index", "ErrorAuthent"));
            }

            string companyCode = GetLoginUser().CompanyCode;
            var    model       = new PMS01002ListViewModel
            {
                GROUP_LIST    = this.commonService.GetUserGroupSelectList(companyCode),
                POSITION_LIST = this.GetPositionList(companyCode)
            };

            // Get Jquery data table state
            if (Session[Constant.SESSION_TRANSITION_DESTINATION].ToString().Contains("/PMS01002/Edit") && Session[Constant.SESSION_IS_BACK] != null)
            {
                var tmpCondition = GetRestoreData() as Condition;

                if (tmpCondition != null)
                {
                    model.Condition = tmpCondition;
                }
            }

            if (Session[Constant.SESSION_IS_BACK] != null)
            {
                Session[Constant.SESSION_IS_BACK] = null;
            }
            return(this.View("List", model));
        }
        /// <summary>
        /// User list
        /// </summary>
        /// <param name="callback">Callback function name</param>
        /// <returns>User list</returns>
        public ActionResult Select(int projectId        = 0,
                                   string groupId       = "",
                                   string pStart        = "",
                                   string pTo           = "",
                                   string isMultiSelect = "",
                                   string callback      = "")
        {
            var currentUser = GetLoginUser();
            var model       = new PMS01002ListViewModel
            {
                GROUP_LIST      = this.commonService.GetUserGroupSelectList(currentUser.CompanyCode),
                POSITION_LIST   = this.GetPositionList(currentUser.CompanyCode),
                IS_MULTI_SELECT = !string.IsNullOrEmpty(isMultiSelect) ? Constant.DEFAULT_VALUE : string.Empty,
                CallBack        = callback
            };

            DateTime startTime;
            DateTime endTime;

            if (DateTime.TryParse(pStart, out startTime) && DateTime.TryParse(pTo, out endTime))
            {
                model.Condition.FROM_DATE = startTime.ToString("yyyy/MM/dd");
                model.Condition.TO_DATE   = endTime.ToString("yyyy/MM/dd");
            }
            else
            {
                model.Condition.FROM_DATE = string.Empty;
                model.Condition.TO_DATE   = string.Empty;
            }

            model.Condition.PROJECT_ID = projectId;

            if (!string.IsNullOrEmpty(groupId))
            {
                model.Condition.GROUP_ID = Convert.ToInt32(groupId);
            }

            return(this.View("Select", model));
        }