Пример #1
0
        public static IList <PermissionNode> BuildPermissionNodes(IList <PermissionModel> permissonModels)
        {
            List <PermissionNode> permissionNodeList = new List <PermissionNode>();

            foreach (PermissionModel permissionModel1 in permissonModels.Where <PermissionModel>((Func <PermissionModel, bool>)(m => !m.ParentId.HasValue)))
            {
                PermissionModel tm             = permissionModel1;
                PermissionNode  permissionNode = new PermissionNode();
                permissionNode.Code = tm.PermissionCode;
                permissionNode.Text = tm.PermissionName;
                foreach (PermissionModel permissionModel2 in permissonModels.Where <PermissionModel>((Func <PermissionModel, bool>)(m =>
                {
                    int?parentId = m.ParentId;
                    int permissionId = tm.PermissionId;
                    if (parentId.GetValueOrDefault() != permissionId)
                    {
                        return(false);
                    }
                    return(parentId.HasValue);
                })).ToList <PermissionModel>())
                {
                    permissionNode.Children.Add(new PermissionNode()
                    {
                        Code = permissionModel2.PermissionCode,
                        Text = permissionModel2.PermissionName
                    });
                }
                permissionNodeList.Add(permissionNode);
            }
            return((IList <PermissionNode>)permissionNodeList);
        }
Пример #2
0
        private List <PermissionNode> BuildUserPermissionNodes(IList <PermissionNode> permissionNodes)
        {
            List <PermissionNode> permissionNodeList1 = new List <PermissionNode>();

            foreach (PermissionNode permissionNode1 in (IEnumerable <PermissionNode>)permissionNodes)
            {
                List <PermissionNode> permissionNodeList2 = this.BuildUserPermissionNodes(permissionNode1.Children);
                if (permissionNodeList2.Count > 0 || string.IsNullOrEmpty(permissionNode1.Code) || this.PermissionCodes.Contains(permissionNode1.Code))
                {
                    PermissionNode permissionNode2 = new PermissionNode()
                    {
                        Text = permissionNode1.Text, Code = permissionNode1.Code, Children = (IList <PermissionNode>)permissionNodeList2
                    };
                    permissionNodeList1.Add(permissionNode2);
                }
            }
            return(permissionNodeList1);
        }
Пример #3
0
 public List <PermissionNode> GetPermissionNodesAsync()
 {
     return(this.BuildUserPermissionNodes(PermissionNode.BuildPermissionNodes((LocalApi.Execute(new PermissionListRequest())).Permissions)));
 }