using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Service.BO;
using Service.BS;
public partial class RolePopedomManager : System.Web.UI.Page
{
#region 变量
private string stRoleId = String.Empty;
private IList ilsPopedom = null;
private IList ilsRolePopedom = null;
#endregion
#region 事件
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
IList ilsRole = null;
RoleService rsrService = new RoleService();
ilsRole = rsrService.FindAllRole();
this.rptRole.DataSource = ilsRole;
this.rptRole.DataBind();
this.GetPopedomInfo();
this.BuildPopedomTree(null, this.ilsPopedom);
if (!Object.Equals(Request.Params["Id"], null))
{
this.stRoleId = Request.Params["Id"].ToString();
this.GetRolePopedomInfo();
this.BindPopedomTree(null, this.ilsRolePopedom);
}
}
else
{
if (!Object.Equals(Request.Params["Id"], null))
{
this.stRoleId = Request.Params["Id"].ToString();
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
RolePopedomService rpsService = new RolePopedomService();
rpsService.RemoveRolePopedomByRoleId(this.stRoleId);
this.SaveRolePopedom(this.tvwPopedomList.Nodes[0]);
this.Response.Write("<script language='javascript'>alert('角色权限保存成功!');</script>");
}
protected void btnRemove_Click(object sender, EventArgs e)
{
this.ClearRolePopedom(this.tvwPopedomList.Nodes[0]);
}
#endregion
#region 方法
/// <summary>
/// 取得用户列表
/// </summary>
protected void GetPopedomInfo()
{
PopedomService psrService = new PopedomService();
this.ilsPopedom = psrService.FindAllPopedom();
}
/// <summary>
/// 取得用户角色列表
/// </summary>
protected void GetRolePopedomInfo()
{
Role rleCurrent = new Role();
RoleService rsrService = new RoleService();
rleCurrent = rsrService.FindRole(Convert.ToInt32(this.stRoleId.Trim()));
ilsRolePopedom = rleCurrent.RolePopedom;
}
/// <summary>
/// 建立部门树
/// </summary>
/// <param name="parentNode"></param>
/// <param name="?"></param>
protected void BuildPopedomTree(TreeNode parentNode, IList popedomInfos)
{
if (!Object.Equals(parentNode, null))
{
foreach (Popedom pdm in popedomInfos)
{
if (Object.Equals(parentNode.Value.ToString(), pdm.ParentPopedomId))
{
TreeNode tndParnet = new TreeNode(pdm.PopedomName, pdm.Id);
tndParnet.ShowCheckBox = true;
parentNode.ChildNodes.Add(tndParnet);
this.BuildPopedomTree(tndParnet, this.ilsPopedom);
}
}
}
else
{
TreeNode tndRoot = new TreeNode("权限列表", "0");
this.tvwPopedomList.Nodes.Add(tndRoot);
this.BuildPopedomTree(tndRoot, this.ilsPopedom);
}
}
/// <summary>
/// 绑定权限角色
/// </summary>
protected void BindPopedomTree(TreeNode parentNode, IList rolePopedoms)
{
if (!Object.Equals(parentNode, null))
{
foreach (TreeNode tndParent in parentNode.ChildNodes)
{
foreach (Service.BO.RolePopedom rpd in rolePopedoms)
{
if (Object.Equals(rpd.PopedomId, tndParent.Value))
{
tndParent.Checked = true;
}
}
this.BindPopedomTree(tndParent, rolePopedoms);
}
}
else
{
TreeNode tndRoot = this.tvwPopedomList.Nodes[0];
this.BindPopedomTree(tndRoot, rolePopedoms);
}
}
/// <summary>
/// 保存权限角色
/// </summary>
/// <param name="parentNode"></param>
protected void SaveRolePopedom(TreeNode parentNode)
{
TreeNodeCollection tncPopedom = parentNode.ChildNodes;
RolePopedomService rpsService = new RolePopedomService();
foreach (TreeNode tndPopedom in tncPopedom)
{
if (tndPopedom.Checked)
{
Service.BO.RolePopedom rpd = new Service.BO.RolePopedom();
rpd.Id = Guid.NewGuid().ToString();
rpd.RoleId = Convert.ToInt32(this.stRoleId);
rpd.PopedomId = tndPopedom.Value;
rpsService.SaveRolePopedom(rpd);
}
this.SaveRolePopedom(tndPopedom);
}
}
/// <summary>
/// 清空权限角色
/// </summary>
protected void ClearRolePopedom(TreeNode parentNode)
{
TreeNodeCollection tncPopedom = parentNode.ChildNodes;
foreach (TreeNode tndPopedom in tncPopedom)
{
if (tndPopedom.ShowCheckBox == true)
{
tndPopedom.Checked = false;
}
else
{
this.SaveRolePopedom(tndPopedom);
}
}
}
#endregion
}