Ejemplo n.º 1
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="item">权限对象</param>
        /// <param name="ifEnable">启用标识</param>
        /// <param name="hasID">拥有的唯一标识</param>
        /// <param name="mode">模式</param>
        public PermissionsModel(T_Permissions item, bool?ifEnable, Guid[] hasID, PermissionsModelModeEnum mode)
        {
            ID   = item.ID;
            Name = item.Name;
            Ico  = item.Ico;
            Code = item.Code;
            if (hasID != null && hasID.Contains(item.ID))
            {
                IsHas = true;
            }
            else
            {
                IsHas = false;
            }
            if (item.T_Permissions1.Count > 0)
            {
                Items = new List <PermissionsModel>();
                List <T_Permissions> listM;
                if (ifEnable == null)
                {
                    listM = item.T_Permissions1.OrderByDescending(m => m.Ranks).ToList();
                }
                else
                {
                    listM = item.T_Permissions1.Where(m => m.IfEnable = ifEnable.Value).OrderByDescending(m => m.Ranks).ToList();
                }
                foreach (T_Permissions perM in listM)
                {
                    if (!perM.IfDelete)
                    {
                        switch (mode)
                        {
                        case PermissionsModelModeEnum.All:
                            Items.Add(new PermissionsModel(perM, ifEnable, hasID, mode));
                            break;

                        case PermissionsModelModeEnum.Has:
                            if (hasID.Contains(perM.ID))
                            {
                                Items.Add(new PermissionsModel(perM, ifEnable, hasID, mode));
                            }
                            break;
                        }
                    }
                }
            }
            else
            {
                Items = null;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获得列表
        /// </summary>
        /// <param name="listM">权限集</param>
        /// <param name="ifEnable">启用标识</param>
        /// <param name="hasID">拥有的唯一标识</param>
        /// <param name="mode">模式</param>
        /// <returns>权限</returns>
        public static List <PermissionsModel> GetList(List <T_Permissions> listM, bool?ifEnable, Guid[] hasID = null, PermissionsModelModeEnum mode = PermissionsModelModeEnum.All)
        {
            List <PermissionsModel> resM = new List <PermissionsModel>();

            if (ifEnable == null)
            {
                listM = listM.OrderByDescending(m => m.Ranks).ToList();
            }
            else
            {
                listM = listM.Where(m => m.IfEnable = ifEnable.Value).OrderByDescending(m => m.Ranks).ToList();
            }
            foreach (T_Permissions item in listM)
            {
                if (!item.IfDelete)
                {
                    switch (mode)
                    {
                    case PermissionsModelModeEnum.All:
                        resM.Add(new PermissionsModel(item, ifEnable, hasID, mode));
                        break;

                    case PermissionsModelModeEnum.Has:
                        if (hasID.Contains(item.ID))
                        {
                            resM.Add(new PermissionsModel(item, ifEnable, hasID, mode));
                        }
                        break;
                    }
                }
            }
            return(resM);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 根据类型和拥有权限获得权限组信息
        /// </summary>
        /// <param name="type">权限类型</param>
        /// <param name="hasIDs">拥有权限</param>
        /// <returns>权限信息</returns>
        private PermissionsGroupModel GetEnablePermissionsInfoByUserGroupIDAndTypeAndHsID(PermissionsTypesEnum type, Guid[] hasIDs, PermissionsModelModeEnum mode)
        {
            List <T_Permissions>  perInfos = _dal.GetPermissionsInfoByTypeAndEnable(type, true);
            PermissionsGroupModel tempM    = new PermissionsGroupModel
            {
                Type  = type,
                Items = PermissionsModel.GetList(perInfos, true, hasIDs, mode)
            };

            return(tempM);
        }