Пример #1
0
        public List <MenuResponse> GetMenusByChkUserId(int userId, int appId)
        {
            var menus = UserNavigationFunctionDbAction.GetMenuFunctions(new List <int>()
            {
                userId
            }, appId);

            List <MenuResponse> topMenus = new List <MenuResponse>();

            foreach (var fun in menus)
            {
                GetTopMenu(fun, menus, topMenus);
            }
            foreach (var menu in topMenus)
            {
                SetChildren(menus, menu);
            }
            return(topMenus);
        }
Пример #2
0
        public List <MenuResponse> GetMenuByUserId(int userId, int appId, out List <RoleResponse> roles)
        {
            roles = UserManagerDb.GetRolesByUserId(userId);

            List <MenuResponse> menus = null;

            if (CommonAction.IsSysAdmin(userId))
            {
                menus = RoleNavigationFunctionDbAction.GetAdminMenu(appId);
            }
            else
            {
                menus = new List <MenuResponse>();
                menus.AddRange(RoleNavigationFunctionDbAction.GetMenuFunctions(roles.Select(n => n.RoleId).ToList(), appId));
                menus.AddRange(UserNavigationFunctionDbAction.GetMenuFunctions(new List <int> {
                    userId
                }, appId));
                menus = menus.Where((i, j) => menus.FindIndex(f => f.Id == i.Id) == j).ToList();
            }
            //var menus = CommonAction.IsSysAdmin(userId)
            //    ? RoleNavigationFunctionDbAction.GetAdminMenu(appId)
            //    : RoleNavigationFunctionDbAction.GetMenuFunctions(roles.Select(n => n.RoleId).ToList(), appId);

            var topMenus = new List <MenuResponse>();

            foreach (var fun in menus)
            {
                GetTopMenu(fun, menus, topMenus);
            }

            foreach (var menu in topMenus)
            {
                SetChildren(menus, menu);
            }

            return(topMenus);
        }