#region
|
|
using System;
|
using System.Data;
|
using CSFrameworkV5.Common;
|
using CSFrameworkV5.Core;
|
using CSFrameworkV5.DataAccess;
|
using CSFrameworkV5.Interfaces;
|
using CSFrameworkV5.Models;
|
using CSFrameworkV5.WebRef.SystemModule;
|
|
#endregion
|
|
namespace CSFrameworkV5.Business.BLL_Permission
|
{
|
public class bllRole : bllBaseDataDict
|
{
|
private IBridge_Permission _PermissionBridge;
|
|
public bllRole()
|
{
|
_KeyFieldName = tb_MyRole.__KeyName;
|
_SummaryTableName = tb_MyRole.__TableName;
|
_DataDictBridge =
|
BridgeFactory.CreateDataDictBridge(typeof(tb_MyRole));
|
_PermissionBridge = CreateBridge();
|
}
|
|
private IBridge_Permission CreateBridge()
|
{
|
if (BridgeFactory.IsADODirect)
|
return new dalPermission(Loginer.CurrentUser);
|
|
if (BridgeFactory.IsWCFBridge) return new WCF_Permission();
|
|
throw new CustomException(BridgeFactory.UNKNOW_BRIDGE_TYPE);
|
}
|
|
/// <summary>
|
/// 创建当前角色用于绑定文本框的数据源
|
/// </summary>
|
/// <param name="sourceRow"></param>
|
public override void CreateDataBinder(DataRow sourceRow)
|
{
|
base.CreateDataBinder(sourceRow);
|
|
//新增记录,给帐套编号预设值
|
if (_DataBinder.Rows[0].RowState == DataRowState.Added)
|
{
|
_DataBinder.Rows[0][tb_MyRole.RowID] = Globals.NewRowID();
|
_DataBinder.Rows[0][tb_MyRole.DataSetID] =
|
Loginer.CurrentUser.DBID;
|
}
|
}
|
|
public DataSet GetRoleOwners(string roleID)
|
{
|
return _PermissionBridge.GetRoleOwners(roleID);
|
}
|
|
public bool IsExists(string roleID)
|
{
|
return _PermissionBridge.IsExistsRole(roleID);
|
}
|
|
public DataTable Query(string roleType, string content)
|
{
|
return _PermissionBridge.Query(roleType, content);
|
}
|
|
public bool Update(UpdateType updateType, DataTable dtRoleActions,
|
DataTable dtRoleUsers)
|
{
|
_DataBinder.Rows[0].EndEdit();
|
|
UpdateDetailCommonValue(_DataBinder);
|
|
//创建一个副本用于保存
|
var data = new DataSet();
|
data.Tables.Add(_DataBinder.Copy());
|
|
if (dtRoleActions != null)
|
{
|
if (updateType == UpdateType.Add)
|
{
|
//设置外键
|
var roleID =
|
ConvertEx.ToString(
|
_DataBinder.Rows[0][tb_MyRole.RoleID]);
|
for (var i = 0; i <= dtRoleActions.Rows.Count - 1; i++)
|
dtRoleActions.Rows[i][tb_MyRoleActions.RoleID] = roleID;
|
}
|
|
var actions = dtRoleActions.GetChanges();
|
if (actions != null) data.Tables.Add(actions);
|
}
|
|
if (dtRoleUsers != null)
|
{
|
//角色的用户,临时权限
|
foreach (DataRow row in dtRoleUsers.Rows)
|
if (row.RowState == DataRowState.Added)
|
{
|
row[tb_MyUserRoles.CreateTime] = DateTime.Now;
|
row[tb_MyUserRoles.CreateUser] =
|
Loginer.CurrentUser.Account;
|
row[tb_MyUserRoles.DataSetID] =
|
Loginer.CurrentUser.DBID;
|
row[tb_MyUserRoles.ExpireDate] =
|
DateTime.Now.AddYears(100);
|
row[tb_MyUserRoles.RoleID] =
|
_DataBinder.Rows[0][tb_MyRole.RoleID];
|
}
|
|
var changes = dtRoleUsers.GetChanges();
|
if (changes != null) data.Tables.Add(changes);
|
}
|
|
//调用数据层的方法提交数据
|
return _DataDictBridge.Update(data);
|
}
|
|
public DataTable GETDAT(string sql)
|
{
|
//BridgeFactory.;
|
return _DataDictBridge.GetDataDictBySql(sql);
|
}
|
}
|
}
|