public List <menuFunctionGroupView> getUserRole(string userId) { using (var ctx = new ConXContext()) { //List<su_menu> menu = ctx.menu.SqlQuery("select LEVEL , MENU_ID, MENU_NAME , MENU_TYPE, LINK_NAME , MAIN_MENU , ICON_NAME from su_menu where EXISTS (select MENU_ID from su_role_menu WHERE MENU_ID= SU_MENU.MENU_ID AND EXISTS (select role_id from su_user_role WHERE ROLE_ID= SU_ROLE_MENU.ROLE_ID and user_id = :param1)) CONNECT BY PRIOR MENU_ID = MAIN_MENU START WITH menu_id ='MOB0000000' ORDER BY MENU_ID", new OracleParameter("param1", userId)).ToList(); string sql = "select level , menu_id, menu_name , menu_type, main_menu , icon_name , link_name from su_menu where EXISTS (select MENU_ID from su_role_menu WHERE MENU_ID= SU_MENU.MENU_ID AND EXISTS (select role_id from su_user_role WHERE ROLE_ID= SU_ROLE_MENU.ROLE_ID and user_id = :param1)) CONNECT BY PRIOR MENU_ID = MAIN_MENU START WITH menu_id ='MOB0000000' ORDER BY MENU_ID"; List <menuView> menu = ctx.Database.SqlQuery <menuView>(sql, new OracleParameter("param1", userId)).ToList(); List <menuFunctionView> functionViews = new List <menuFunctionView>(); foreach (var x in menu) { menuFunctionView view = new menuFunctionView() { menuFunctionGroupId = x.main_menu, menuFunctionId = x.menu_id, menuFunctionName = x.menu_name, iconName = x.icon_name, menuURL = x.link_name, }; functionViews.Add(view); } List <menuFunctionGroupView> groupView = new List <menuFunctionGroupView>(); foreach (var x in menu) { menuFunctionGroupView view = new menuFunctionGroupView() { menuFunctionGroupId = x.menu_id, menuFunctionGroupName = x.menu_name, iconName = x.icon_name, menuFunctionList = functionViews .Where(o => o.menuFunctionGroupId == x.menu_id) .ToList() }; if (x.menu_type == "M" && x.menu_id != "MOB0000000") { groupView.Add(view); } } return(groupView); } }
public List <menuFunctionGroupView> getUserRole(long userRoleId) { using (var ctx = new ConXContext()) { List <UserRoleFunctionAuthorization> role = ctx.UserRoleFunctionAuthorizations .Include("menuFunction") .Include("userRoleFunctionAccessList") .Include("userRoleFunctionAccessList.menuFunctionAction") .Where(x => x.userRoleId == userRoleId) .ToList(); List <menuFunctionView> functionViews = new List <menuFunctionView>(); foreach (var x in role) { menuFunctionView view = new menuFunctionView() { menuFunctionGroupId = x.menuFunction.menuFunctionGroupId, menuFunctionId = x.menuFunctionId, menuFunctionName = x.menuFunction.menuFunctionName, iconName = x.menuFunction.iconName, menuURL = x.menuFunction.menuURL, orderDisplay = x.menuFunction.orderDisplay, actions = new Dictionary <string, bool>() }; foreach (var y in x.userRoleFunctionAccessList) { if (!view.actions.ContainsKey(y.menuFunctionAction.action)) { view.actions.Add(y.menuFunctionAction.action, true); } } functionViews.Add(view); } List <string> allowGroup = functionViews.Select(x => x.menuFunctionGroupId).Distinct().ToList(); var groups = ctx.MenuFunctionGroups .Where(x => allowGroup.Contains(x.menuFunctionGroupId)) .OrderBy(o => o.orderDisplay) .ToList(); List <menuFunctionGroupView> groupView = new List <menuFunctionGroupView>(); foreach (var x in groups) { menuFunctionGroupView view = new menuFunctionGroupView() { menuFunctionGroupId = x.menuFunctionGroupId, menuFunctionGroupName = x.menuFunctionGroupName, iconName = x.iconName, menuGroup = x.menuGroup, orderDisplay = x.orderDisplay, menuFunctionList = functionViews .Where(o => o.menuFunctionGroupId == x.menuFunctionGroupId) .ToList() }; groupView.Add(view); } return(groupView); } }