/// <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; } }
/// <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); }
/// <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); }