public IEnumerable <MenuModel> GetMenu() { List <string> moduleList = new List <string>(); List <MenuModel> menuList = new List <MenuModel>(); ModuleDA moduleDA = null; DataTable dt = new DataTable(); try { moduleDA = new ModuleDA(); dt = moduleDA.GetMenuByUserID(UserUID, Operation); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; if ("".Equals(CommUtil.ConvertObjectToString(dr["ModuleCode"])) || moduleList.Contains(CommUtil.ConvertObjectToString(dr["ModuleCode"]))) { continue; } else { moduleList.Add(CommUtil.ConvertObjectToString(dr["ModuleCode"])); } MenuModel mm = new MenuModel(); mm.ModuleCode = CommUtil.ConvertObjectToString(dr["ModuleCode"]); mm.ModuleName = CommUtil.ConvertObjectToString(dr["ModuleName"]); mm.ModuleController = CommUtil.ConvertObjectToString(dr["ModuleController"]); mm.ModuleAction = CommUtil.ConvertObjectToString(dr["ModuleAction"]); mm.IsFatherNode = CommUtil.ConvertObjectToBool(dr["IsFatherNode"]); bool isSelect = false; if (mm.IsFatherNode) { mm.SubMenu = GetSubMenu(mm.ModuleCode, 1, out isSelect); } else { isSelect = CheckMenuSelected(mm.ModuleController, mm.ModuleAction); } mm.IsSelect = isSelect; menuList.Add(mm); } } finally { if (moduleDA != null) { moduleDA.CloseConnection(); } } return(menuList); }
/// <summary> /// Get all module accessright /// </summary> /// <param name="allowAccessActionList"></param> /// <returns></returns> private List <ModuleRightModel> GetAllModule(List <string> allowAccessActionList) { ModuleDA moduleDA = null; AccessRightDA accessRightDA = null; List <ModuleRightModel> moduleRightList = new List <ModuleRightModel>(); DataTable dtAllModule = new DataTable(); try { moduleDA = new ModuleDA(); accessRightDA = new AccessRightDA(); dtAllModule = moduleDA.GetAllLevel1Module(); for (int i = 0; i < dtAllModule.Rows.Count; i++) { DataRow dr = dtAllModule.Rows[i]; if (dr["code"] != null) { ModuleRightModel mrModel = FillModuleRightModel(dr, allowAccessActionList, accessRightDA); if (CommUtil.ConvertObjectToBool(dr["IsFatherNode"])) { mrModel.SubModule = GetSubModule(moduleDA, accessRightDA, allowAccessActionList, mrModel.ModuleCode, 1); } moduleRightList.Add(mrModel); } } } finally { if (accessRightDA != null) { accessRightDA.CloseConnection(); } if (moduleDA != null) { moduleDA.CloseConnection(); } } return(moduleRightList); }
private List <MenuModel> GetSubMenu(string code, int deep, out bool isSelect) { bool temp = false; isSelect = false; List <string> moduleList = new List <string>(); List <MenuModel> menuList = new List <MenuModel>(); ModuleDA moduleDA = null; DataTable dt = new DataTable(); try { moduleDA = new ModuleDA(); dt = moduleDA.GetMenuByCodeAndUserID(code, UserUID, Operation); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; if ("".Equals(CommUtil.ConvertObjectToString(dr["ModuleCode"])) || moduleList.Contains(CommUtil.ConvertObjectToString(dr["ModuleCode"]))) { continue; } else { moduleList.Add(CommUtil.ConvertObjectToString(dr["ModuleCode"])); } MenuModel mm = new MenuModel(); mm.ModuleCode = CommUtil.ConvertObjectToString(dr["ModuleCode"]); mm.ModuleName = CommUtil.ConvertObjectToString(dr["ModuleName"]); mm.ModuleController = CommUtil.ConvertObjectToString(dr["ModuleController"]); mm.ModuleAction = CommUtil.ConvertObjectToString(dr["ModuleAction"]); mm.IsFatherNode = CommUtil.ConvertObjectToBool(dr["IsFatherNode"]); if (mm.IsFatherNode && deep <= 5) { mm.SubMenu = GetSubMenu(mm.ModuleCode, deep + 1, out isSelect); } else { isSelect = CheckMenuSelected(mm.ModuleController, mm.ModuleAction); } mm.IsSelect = isSelect; //subMenu is selected if (isSelect) { temp = true; } menuList.Add(mm); } //if submenu is selectd father menu is selected if (temp) { isSelect = true; } } finally { if (moduleDA != null) { moduleDA.CloseConnection(); } } return(menuList); }