Exemplo n.º 1
0
        //public ActionResult FunctionSetting()
        //{

        //    ViewBag.AreaID = -1;
        //    ViewBag.ControllerID = -1;
        //    ViewBag.ParentFunctionID = -1;
        //    ViewBag.FunctionName = string.Empty;

        //    FunctionSettingModel model = new FunctionSettingModel();
        //    model.PagedFunctions = FunctionBLL.GetPagedFunctions(PageSize);
        //    var areaList = AreaBLL.GetAreas();
        //    model.AreasSelectList = areaList.ToSelectListWithAll(m => GetSelectListItem(m.ID, m.AreaName));
        //    var ctrList = ControllerBLL.GetControllers();
        //    model.ControllersSelectList = ctrList.ToSelectListWithAll(m => GetSelectListItem(m.ID, m.ControllerName));

        //    var parentFuncList = FunctionBLL.GetFunctions();
        //    model.ParentFunctionsSelectList = parentFuncList.ToSelectListWithAll(m => GetSelectListItem(m.ID, m.FunctionName));

        //    return PartialView("_FunctionSetting", model);
        //}

        //private ActionResult GetFunctionPagedGridPV(string functionName, int areaID, int controllerID, int parentFunctionID, int currentPage)
        //{
        //    ViewBag.AreaID = areaID;
        //    ViewBag.ControllerID = controllerID;
        //    ViewBag.FunctionName = functionName;
        //    ViewBag.ParentFunctionID = parentFunctionID;
        //    return PartialView("_FunctionPagedGrid", FunctionBLL.GetPagedFunctions(PageSize, currentPage, functionName, controllerID, areaID, parentFunctionID));
        //}

        //public ActionResult FunctionPagedGrid(string functionName, int areaID = -1, int controllerID = -1, int currentPage = 1, int parentFunctionID = -1)
        //{
        //    return GetFunctionPagedGridPV(functionName, areaID, controllerID, parentFunctionID, currentPage);
        //}

        //[HttpPost, ValidateAntiForgeryToken]
        //public ActionResult GetFunctionInfo(string functionName, int areaID, int controllerID, int parentFunctionID)
        //{
        //    return GetFunctionPagedGridPV(functionName, areaID, controllerID, parentFunctionID, 1);
        //}
        #endregion

        public ActionResult FunctionSetting()
        {
            FunctionSettingModel model = new FunctionSettingModel();

            var areaList = AreaBLL.GetAreas();

            model.AreasSelectList = areaList.ToSelectListWithAll(m => GetSelectListItem(m.ID, m.AreaName));

            var ctrList = ControllerBLL.GetControllers();

            model.ControllersSelectList = ctrList.ToSelectListWithAll(m => GetSelectListItem(m.ID, m.ControllerName));

            var parentFuncList = FunctionBLL.GetFunctions();

            model.ParentFunctionsSelectList = parentFuncList.ToSelectListWithAll(m => GetSelectListItem(m.ID, m.FunctionName));


            model.SearchPage       = 1;
            model.AreaID           = -1;
            model.ControllerID     = -1;
            model.ParentFunctionID = -1;
            model.PagedDatas       = FunctionBLL.GetPagedFunctions(model, this.PageSize);
            return(PartialView("_FunctionSetting", model));
        }
Exemplo n.º 2
0
 public ActionResult GetFunctionInfo(FunctionSettingModel model)
 {
     return(GetFunctionPagedGridPV(model));
 }
Exemplo n.º 3
0
 private ActionResult GetFunctionPagedGridPV(FunctionSettingModel model)
 {
     model.PagedDatas = FunctionBLL.GetPagedFunctions(model, this.PageSize);
     return(PartialView("_FunctionPagedGrid", model));
 }
Exemplo n.º 4
0
        /// <summary>
        /// 获取功能分页信息
        /// </summary>
        /// <param name="pageSize">页大小</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="functionName">功能名称</param>
        /// <param name="controllerID">功能对应的动作所属控制器编号</param>
        /// <param name="areaID">功能对应的动作所属控制器所属区域编号</param>
        /// <param name="parentFunctionID">上级功能编号</param>
        /// <returns></returns>
        public static AsiatekPagedList <FunctionListModel> GetPagedFunctions(FunctionSettingModel model, int pageSize)
        {
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@tableName", "VW_GetFunctionsWithLevelID f"),
                new SqlParameter("@joinStr", @"LEFT JOIN Actions act ON f.ActionID=act.ID 
LEFT JOIN Controllers c ON act.ControllerID=c.ID 
LEFT JOIN Areas a ON c.AreaID=a.ID
LEFT JOIN Functions f2 ON f.ParentID=f2.ID"),
                new SqlParameter("@pageSize", pageSize),
                new SqlParameter("@currentPage", model.SearchPage),
                new SqlParameter("@orderBy", "f.LevelID"),
                new SqlParameter("@showColumns", @"f.ID ,f.IsBackground,f.LevelID,
        f.FunctionName ,
        f2.FunctionName AS ParentFunctionName ,
        act.ActionName ,
        c.ControllerName ,
        a.AreaName"),
            };

            string conditionStr = "f.FunctionName LIKE '%" + model.FunctionName + "%'";

            if (model.IsMenu)//搜索菜单,搜索菜单的情况下,只额外考虑功能名、顶级功能、上级功能
            {
                conditionStr += " AND f.ActionID IS NULL";
                if (model.IsTopFunction)//顶级功能
                {
                    conditionStr += " AND f.ParentID IS NULL";
                }
                else if (model.ParentFunctionID != -1)//非顶级功能并且选了具体的上级功能
                {
                    conditionStr += " AND f.ParentID='" + model.ParentFunctionID + "'";
                }
            }
            else//非菜单,正常与Action绑定的功能
            {
                if (model.IsTopFunction)
                {
                    conditionStr += " AND f.ParentID IS NULL";
                }

                //1.选择了所属区域、未选所属控制器与具体上级功能
                if (model.AreaID != -1 && model.ControllerID == -1 && model.ParentFunctionID == -1)
                {
                    conditionStr += " AND c.AreaID='" + model.AreaID + "'";
                }
                //2.选择了具体的控制器,但是没选具体上级功能
                else if (model.ControllerID != -1 && model.ParentFunctionID == -1)
                {
                    conditionStr += " AND act.ControllerID='" + model.ControllerID + "'";
                }
                //3.非顶级功能且选择了具体的上级功能
                else if (model.ParentFunctionID != -1 && !model.IsTopFunction)
                {
                    conditionStr += " AND f.ParentID='" + model.ParentFunctionID + "'";
                }
            }

            if (model.IsAppFeatures)
            {
                conditionStr += " AND f.IsAppFeatures= 1";
            }

            //if (model.IsMenu)
            //{
            //    if (model.ParentFunctionID == -1)//没选上级功能
            //    {
            //        paras.Add(new SqlParameter("@conditionStr", "f.FunctionName LIKE '%" + model.FunctionName + "%' AND f.ActionID IS NULL"));
            //    }
            //    else
            //    {
            //        paras.Add(new SqlParameter("@conditionStr", "f.FunctionName LIKE '%" + model.FunctionName + "%' AND f.ActionID IS NULL AND f.ParentID='" + model.ParentFunctionID + "'"));
            //    }
            //}
            //else if (model.AreaID != -1 && model.ControllerID == -1 && model.ParentFunctionID == -1)//选择了区域,没选控制器与上级功能
            //{
            //    paras.Add(new SqlParameter("@conditionStr", "f.FunctionName LIKE '%" + model.FunctionName + "%' AND c.AreaID='" + model.AreaID + "'"));
            //}
            //else if (model.ControllerID != -1 && model.ParentFunctionID == -1)//选择了具体的控制器,但是没选上级功能
            //{
            //    paras.Add(new SqlParameter("@conditionStr", "f.FunctionName LIKE '%" + model.FunctionName + "%' AND act.ControllerID='" + model.ControllerID + "'"));
            //}
            //else if (model.ParentFunctionID != -1)//选择了上级功能
            //{
            //    paras.Add(new SqlParameter("@conditionStr", "f.FunctionName LIKE '%" + model.FunctionName + "%' AND f.ParentID='" + model.ParentFunctionID + "'"));
            //}
            //else//什么都没选
            //{
            //    paras.Add(new SqlParameter("@conditionStr", "f.FunctionName LIKE '%" + model.FunctionName + "%'"));
            //}



            paras.Add(new SqlParameter("@conditionStr", conditionStr));

            paras.Add(new SqlParameter()
            {
                ParameterName = "@totalItemCount",
                Direction     = ParameterDirection.Output,
                SqlDbType     = SqlDbType.Int
            });
            paras.Add(new SqlParameter()
            {
                ParameterName = "@newCurrentPage",
                Direction     = ParameterDirection.Output,
                SqlDbType     = SqlDbType.Int
            });

            List <FunctionListModel> list = ConvertToList <FunctionListModel> .Convert(MSSQLHelper.ExecuteDataTable(CommandType.StoredProcedure, "Proc_GetPagedDatas", paras.ToArray()));

            int totalItemCount = Convert.ToInt32(paras[paras.Count - 2].Value);
            int newCurrentPage = Convert.ToInt32(paras[paras.Count - 1].Value);

            return(list.ToPagedList(newCurrentPage, pageSize, totalItemCount));
        }