#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);
}
///
/// 创建当前角色用于绑定文本框的数据源
///
///
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);
}
}
}