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