📄 group.cs
字号:
using System;
using System.Data ;
using System.Xml ;
using COAdmin.COMMON;
using COAdmin.DAL ;
namespace COAdmin.BLL
{
/// <summary>
/// Group 的摘要说明。
/// </summary>
public class Group
{
public Group()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private string _groupID;
private string _groupName;
private XmlAccess xa = new XmlAccess() ;
private string _usrXmlDocPath = COAdminGlobals.ConfigFilePath + "SysUser.xml" ;
private string[] attName = {"id","dsc"} ;
public string GroupID
{
get{ return _groupID ; }
set{ _groupID = value ;}
}
public string GroupName
{
get{ return _groupName ; }
set{ _groupName = value ; }
}
/// <summary>
/// 添加组信息
/// </summary>
/// <returns></returns>
public int AddGroup()
{
int ret = -1 ;
//读取XML文
xa.Load(this._usrXmlDocPath) ;
//先检查是否存在
if(xa.FindNode(".//Group[@id='" + this._groupID + "']"))
{
//存在相同的组,返回1
ret = 1 ;
return ret ;
}
string[] attVal = {_groupID,_groupName} ;
//执行添加
string path=".//Root" ;
ret = xa.AddNode(path,"Group",attName,attVal) ;
//保存
xa.SaveXml(this._usrXmlDocPath) ;
return ret ;
}
/// <summary>
/// 修改组信息
/// </summary>
/// <returns></returns>
public int ModifyGroup()
{
int ret = -1 ;
//读取XML文
xa.Load(this._usrXmlDocPath) ;
//路径
string path = ".//Group[@id='" + this._groupID + "']" ;
string[] attVal = {_groupID,_groupName} ;
//修改用户信息
ret = xa.ModifyAttribute(path,attName,attVal) ;
//保存
xa.SaveXml(this._usrXmlDocPath) ;
return ret ;
}
/// <summary>
/// 删除组信息
/// </summary>
/// <param name="grpID">组ID</param>
/// <returns></returns>
public int DeleteGroup(string grpID)
{
int ret = -1 ;
//读取XML文
xa.Load(this._usrXmlDocPath) ;
//路径
string path = ".//Group[@id='" + grpID + "']" ;
//执行删除操作
ret = xa.DeleteNode(path) ;
//保存删除后的XML文
xa.SaveXml(this._usrXmlDocPath) ;
return ret ;
}
/// <summary>
/// 查询所有组信息
/// </summary>
/// <returns></returns>
public DataTable GetGroup()
{
DataTable ret = null ;
//读取XML文
xa.Load(this._usrXmlDocPath) ;
//节点路径
string path = ".//Group" ;
//获取节点的所有子节点
XmlNodeList list = xa.GetNodes(path) ;
ret = NodeListToTable(list) ;
return ret ;
}
/// <summary>
/// 角色节点集合转化为DataTable
/// </summary>
/// <param name="list">节点集合</param>
/// <returns>用户DataTable</returns>
private DataTable NodeListToTable(XmlNodeList list)
{
DataTable dt = CreateDataTable() ;
if(list==null)
{
return dt ;
}
for(int i=0;i<list.Count;i++)
{
XmlNode nd = list[i] ;
//新建行
DataRow dr = dt.NewRow() ;
dr["valueID"] = nd.Attributes["id"].Value ;
dr["valueText"] = nd.Attributes["dsc"].Value ;
dt.Rows.Add(dr) ;
}
return dt ;
}
/// <summary>
/// 创建角色表
/// </summary>
/// <returns>DataTable</returns>
private DataTable CreateDataTable()
{
DataTable dt = new DataTable() ;
dt.Columns.Add("valueID") ;
dt.Columns.Add("valueText") ;
return dt ;
}
/// <summary>
/// 获取组的角色列表
/// </summary>
/// <param name="grpID">组ID</param>
/// <returns></returns>
public string GetGroupRoles(string grpID)
{
string roles = "" ;
string path = ".//Group[@id='" + grpID + "']" ;
//读取XML文
xa.Load(this._usrXmlDocPath) ;
//取用户权限列表
path = ".//Group[@id='" + grpID + "']/role" ;
XmlNodeList list = xa.GetNodes(path) ;
if(list == null)
{
return roles ;
}
//将权限列表整编为逗号分隔的字符串
for(int i=0;i<list.Count;i++)
{
if(roles != "")
{
roles += "," ;
}
roles += list[i].Attributes["id"].Value ;
}
return roles ;
}
/// <summary>
/// 保存组角色信息
/// </summary>
/// <param name="grpID">组ID</param>
/// <param name="roles">角色字符串</param>
public void AddRoles(string grpID,string roles)
{
string[] spRole = roles.Split(new char[] {','}) ;
string path=".//Group[@id='" + grpID + "']" ;
//读取XML文
xa.Load(this._usrXmlDocPath) ;
//先清除用户的角色
XmlNode node = xa.GetSingleNode(path) ;
XmlNodeList list = xa.GetNodes(path+"/role") ;
foreach(XmlNode nd in list)
{
node.RemoveChild(nd) ;
}
//逐个添加角色
foreach(string role in spRole)
{
string[] attName = {"id"} ;
string[] attVal = {role} ;
//执行添加
xa.AddNode(path,"role",attName,attVal) ;
}
//保存
xa.SaveXml(this._usrXmlDocPath) ;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -