public List <jsTree> getChildF(int ParentID, List <CSF_Functions> dataAll, List <int> lFuncByRole) { try { List <jsTree> jsTreeList = new List <jsTree>(); jsTree objTree; jsTreeState state; var data = dataAll.Where(x => x.ParentID == ParentID); if (data.Count() > 0) { foreach (var item in data) { objTree = new jsTree(); state = new jsTreeState(); objTree.id = item.ID; objTree.text = item.Name; if (lFuncByRole.Contains(item.ID)) { state.selected = true; } objTree.children = getChildF(item.ID, dataAll, lFuncByRole); objTree.state = state; jsTreeList.Add(objTree); } } return(jsTreeList); } catch (Exception ex) { throw ex; } }
//[CheckPermission] public JsonResult GetPermissionByRole(string RoleID, string ModuleID, string isadmin) { try { CSF_MVCEntities ett = new CSF_MVCEntities(); int ROLEID = Convert.ToInt32(RoleID); int MODULEID = Convert.ToInt32(ModuleID); bool ISADMIN = Convert.ToBoolean(isadmin); List <int> lFuncByRole = ett.CSF_RoleFunction.Where(x => x.RoleID == ROLEID).Select(x => (int)x.FunctionID).ToList(); List <int> lPageByRole = ett.CSF_PageRole.Where(x => x.RoleID == ROLEID).Select(x => (int)x.PageID).ToList(); #region jsTreePage List <jsTree> jsTreeList = new List <jsTree>(); jsTree objTree = new jsTree(); jsTreeState state; var dataAll = ett.CSF_Pages.Where(x => x.IsAdmin == ISADMIN).OrderBy(x => x.Order).ToList(); var data = dataAll.Where(x => x.ParentID == 0); foreach (var item in data) { objTree = new jsTree(); state = new jsTreeState(); objTree.id = item.ID; objTree.text = item.Name; if (lPageByRole.Contains(item.ID)) { state.selected = true; } objTree.children = getChild(item.ID, dataAll, lPageByRole); objTree.state = state; jsTreeList.Add(objTree); } #endregion #region jsTreeFunction List <jsTree> jsTreeListF = new List <jsTree>(); jsTree objTreeF = new jsTree(); jsTreeState stateF; var dataAllF = ett.CSF_Functions.Where(x => x.ModuleID == MODULEID).ToList(); var dataF = dataAllF.Where(x => x.ParentID == 0); foreach (var item in dataF) { objTreeF = new jsTree(); stateF = new jsTreeState(); objTreeF.id = item.ID; objTreeF.text = item.Name; if (lFuncByRole.Contains(item.ID)) { stateF.selected = true; } objTreeF.children = getChildF(item.ID, dataAllF, lFuncByRole); objTreeF.state = stateF; jsTreeListF.Add(objTreeF); } #endregion var jsonResults = new { lFuncByRole, lPageByRole, jsTreeList, jsTreeListF, state = true }; return(Json(jsonResults, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { state = false, message = ex }, JsonRequestBehavior.AllowGet)); } }
//[CheckPermission] public JsonResult GetPermissionByRole(string RoleID, string ModuleID, string isadmin) { try { DT_WebGISEntities ett = new DT_WebGISEntities(); int ROLEID = Convert.ToInt32(RoleID); int MODULEID = Convert.ToInt32(ModuleID); bool ISADMIN = Convert.ToBoolean(isadmin); //List<int> lFuncByRole = ett.CSF_RoleFunction.Where(x => x.RoleID == ROLEID) // .Select(x => (int)x.FunctionID) // .ToList(); List <int> lFuncByRole = ett.CSF_Functions .Join(ett.CSF_Modules, fc => fc.ModuleID, md => md.ID, (fc, md) => new { CSF_Functions = fc, CSF_Modules = md }) .Where(md => md.CSF_Modules.IsActive == true) .Select(mfc => mfc.CSF_Functions) .Join(ett.CSF_RoleFunction, mfc => mfc.ID, rfc => rfc.FunctionID, (mfc, rfc) => new { CSF_Functions = mfc, CSF_RoleFunction = rfc }) .Select(fr => fr.CSF_RoleFunction) .Where(x => x.RoleID == ROLEID) .Select(x => (int)x.FunctionID) .ToList(); //List<int> lPageByRole = ett.CSF_PageRole.Where(x => x.RoleID == ROLEID).Select(x => (int)x.PageID).ToList(); List <int> lPageByRole = ett.CSF_Pages .Join(ett.CSF_Modules, pg => pg.ModuleID, md => md.ID, (pg, md) => new { CSF_Pages = pg, CSF_Modules = md }) .Where(md => md.CSF_Modules.IsActive == true) .Select(mpg => mpg.CSF_Pages) .Join(ett.CSF_PageRole, pg => pg.ID, pr => pr.PageID, (pg, pr) => new { CSF_Pages = pg, CSF_PageRole = pr }) .Select(pgr => pgr.CSF_PageRole) .Where(x => x.RoleID == ROLEID).Select(x => (int)x.PageID).ToList(); #region jsTreePage List <jsTree> jsTreeList = new List <jsTree>(); jsTree objTree = new jsTree(); jsTreeState state; //var dataAll = ett.CSF_Pages.Where(x => x.IsAdmin == ISADMIN && x.IsActive == true).OrderBy(x => x.Order).ToList(); var dataAll = ett.CSF_Pages .Join(ett.CSF_Modules, pg => pg.ModuleID, md => md.ID, (pg, md) => new { CSF_Pages = pg, CSF_Modules = md }) .Where(md => md.CSF_Modules.IsActive == true) .Select(pgmd => pgmd.CSF_Pages) .Where(x => x.IsAdmin == ISADMIN && x.IsActive == true).OrderBy(x => x.Order).ToList(); var data = dataAll.Where(x => x.ParentID == 0); foreach (var item in data) { objTree = new jsTree(); state = new jsTreeState(); objTree.id = item.ID; objTree.text = item.Name; if (lPageByRole.Contains(item.ID)) { state.selected = true; } objTree.children = getChild(item.ID, dataAll, lPageByRole); objTree.state = state; jsTreeList.Add(objTree); } #endregion #region jsTreeFunction List <jsTree> jsTreeListF = new List <jsTree>(); jsTree objTreeF = new jsTree(); jsTreeState stateF; //var dataAllF = ett.CSF_Functions.Where(x => x.ModuleID == MODULEID).ToList(); var dataAllF = ett.CSF_Functions .Join(ett.CSF_Modules, fc => fc.ModuleID, md => md.ID, (fc, md) => new { CSF_Functions = fc, CSF_Modules = md }) .Where(md => md.CSF_Modules.IsActive == true) .Select(fc => fc.CSF_Functions) .Where(x => x.ModuleID == MODULEID).ToList(); var dataF = dataAllF.Where(x => x.ParentID == 0); foreach (var item in dataF) { objTreeF = new jsTree(); stateF = new jsTreeState(); objTreeF.id = item.ID; objTreeF.text = item.Name; if (lFuncByRole.Contains(item.ID)) { stateF.selected = true; } objTreeF.children = getChildF(item.ID, dataAllF, lFuncByRole); objTreeF.state = stateF; jsTreeListF.Add(objTreeF); } #endregion var jsonResults = new { lFuncByRole, lPageByRole, jsTreeList, jsTreeListF, state = true }; return(Json(jsonResults, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { state = false, message = ex }, JsonRequestBehavior.AllowGet)); } }