//数据持久化 internal static void SaveToDb(OpProRoleInfo pOpProRoleInfo, OpProRole pOpProRole, bool pIsNew) { pOpProRole.OpProRoleId = pOpProRoleInfo.opProRoleId; pOpProRole.OperationId = pOpProRoleInfo.operationId; pOpProRole.ProcessId = pOpProRoleInfo.processId; pOpProRole.RoleId = pOpProRoleInfo.roleId; pOpProRole.IsNew = pIsNew; string UserName = SubsonicHelper.GetUserName(); try { pOpProRole.Save(UserName); } catch (Exception ex) { LogManager.getInstance().getLogger(typeof(OpProRoleInfo)).Error(ex); if (ex.Message.Contains("插入重复键")) //违反了唯一键 { throw new AppException("此对象已经存在"); //此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示 } throw new AppException("保存失败"); } pOpProRoleInfo.opProRoleId = pOpProRole.OpProRoleId; //如果缓存存在,更新缓存 if (CachedEntityCommander.IsTypeRegistered(typeof(OpProRoleInfo))) { ResetCache(); } }
/// <summary> /// 获得分页列表,无论是否是缓存实体都从数据库直接拿取数据 /// </summary> /// <param name="pPageIndex">页数</param> /// <param name="pPageSize">每页列表</param> /// <param name="pOrderBy">排序</param> /// <param name="pSortExpression">排序字段</param> /// <param name="pRecordCount">列表行数</param> /// <returns>数据分页</returns> public static List <OpProRoleInfo> GetPagedList(int pPageIndex, int pPageSize, SortDirection pOrderBy, string pSortExpression, out int pRecordCount) { if (pPageIndex <= 1) { pPageIndex = 1; } List <OpProRoleInfo> list = new List <OpProRoleInfo>(); Query q = OpProRole.CreateQuery(); q.PageIndex = pPageIndex; q.PageSize = pPageSize; q.ORDER_BY(pSortExpression, pOrderBy.ToString()); OpProRoleCollection collection = new OpProRoleCollection(); collection.LoadAndCloseReader(q.ExecuteReader()); foreach (OpProRole opProRole in collection) { OpProRoleInfo opProRoleInfo = new OpProRoleInfo(); LoadFromDAL(opProRoleInfo, opProRole); list.Add(opProRoleInfo); } pRecordCount = q.GetRecordCount(); return(list); }
//查询指定流程、角色的操作 public static DataTable getOperation(int processid, int roleid) { Query q = OpProRole.Query(); q.AddWhere(OpProRole.Columns.RoleId, roleid); q.AddWhere(OpProRole.Columns.ProcessId, processid); return(q.ExecuteDataSet().Tables[0]); }
//从后台获取数据 internal static void LoadFromDAL(OpProRoleInfo pOpProRoleInfo, OpProRole pOpProRole) { pOpProRoleInfo.opProRoleId = pOpProRole.OpProRoleId; pOpProRoleInfo.operationId = pOpProRole.OperationId; pOpProRoleInfo.processId = pOpProRole.ProcessId; pOpProRoleInfo.roleId = pOpProRole.RoleId; pOpProRoleInfo.Loaded = true; }
////重新赋值 //public static void UpdateOperation(int operationid,int roleid,int processid) //{ // Query q = OpProRole.Query(); // q.AddWhere(OpProRole.Columns.RoleId, roleid); // q.AddWhere(OpProRole.Columns.ProcessId, processid); // q.AddUpdateSetting(OpProRole.Columns.OperationId, operationid); // q.QueryType = QueryType.Update; // q.Execute(); //} //清空 //public static void UpdateOperation(int processid, int roleid) //{ // Query q = OpProRole.Query(); // q.AddWhere(OpProRole.Columns.RoleId, roleid); // q.AddWhere(OpProRole.Columns.ProcessId, processid); // q.AddUpdateSetting(OpProRole.Columns.OperationId, null); // q.QueryType = QueryType.Update; // q.Execute(); //} //删除指定操作权限 public static void DelOperation(int processid, int roleid, int operationid) { Query q = OpProRole.Query(); q.AddWhere(OpProRole.Columns.OperationId, operationid); q.AddWhere(OpProRole.Columns.RoleId, roleid); q.AddWhere(OpProRole.Columns.ProcessId, processid); q.QueryType = QueryType.Delete; q.Execute(); }
//删除角色及对应的操作、用户 public static void DelRole(int id) { Query q = RoleMaster.Query(); q.AddWhere(RoleMaster.Columns.RoleId, id); q.QueryType = QueryType.Delete; q.Execute(); Query s = OpProRole.Query(); s.AddWhere(OpProRole.Columns.RoleId, id); s.QueryType = QueryType.Delete; s.Execute(); Role.Delete(id); }
//ProcessRole数据是否存在 public static bool IsProcessRole(int processid, int roleid) { Query q = OpProRole.Query(); q.AddWhere(OpProRole.Columns.RoleId, roleid); q.AddWhere(OpProRole.Columns.ProcessId, processid); DataTable dt = q.ExecuteDataSet().Tables[0]; if (dt.Rows.Count > 0) { return(true); } else { return(false); } }
/// <summary> /// 保存 /// </summary> public override void Save() { if (!m_Loaded) //新增 { OpProRole opProRole = new OpProRole(); SaveToDb(this, opProRole, true); } else //修改 { OpProRole opProRole = new OpProRole(opProRoleId); if (opProRole.IsNew) { throw new AppException("该数据已经不存在了"); } SaveToDb(this, opProRole, false); } }
/// <summary> /// 删除 /// </summary> /// <returns>是否成功</returns> public override void Delete() { if (!m_Loaded) { throw new AppException("尚未初始化"); } bool result = (OpProRole.Delete(OpProRoleId) == 1); //更新缓存 if (result && CachedEntityCommander.IsTypeRegistered(typeof(OpProRoleInfo))) { ResetCache(); } if (!result) { throw new AppException("删除失败,数据可能被删除"); } }
private void LoadFromId(int opProRoleId) { if (CachedEntityCommander.IsTypeRegistered(typeof(OpProRoleInfo))) { OpProRoleInfo opProRoleInfo = Find(GetList(), opProRoleId); if (opProRoleInfo == null) { throw new AppException("未能在缓存中找到相应的键值对象"); } Copy(opProRoleInfo, this); } else { OpProRole opProRole = new OpProRole(opProRoleId); if (opProRole.IsNew) { throw new AppException("尚未初始化"); } LoadFromDAL(this, opProRole); } }
private void LoadFromId(int opProRoleId) { if (CachedEntityCommander.IsTypeRegistered(typeof(OpProRoleInfo))) { OpProRoleInfo opProRoleInfo=Find(GetList(), opProRoleId); if(opProRoleInfo==null) throw new AppException("未能在缓存中找到相应的键值对象"); Copy(opProRoleInfo, this); } else { OpProRole opProRole=new OpProRole( opProRoleId); if(opProRole.IsNew) throw new AppException("尚未初始化"); LoadFromDAL(this, opProRole); } }
//数据持久化 internal static void SaveToDb(OpProRoleInfo pOpProRoleInfo, OpProRole pOpProRole,bool pIsNew) { pOpProRole.OpProRoleId = pOpProRoleInfo.opProRoleId; pOpProRole.OperationId = pOpProRoleInfo.operationId; pOpProRole.ProcessId = pOpProRoleInfo.processId; pOpProRole.RoleId = pOpProRoleInfo.roleId; pOpProRole.IsNew=pIsNew; string UserName = SubsonicHelper.GetUserName(); try { pOpProRole.Save(UserName); } catch(Exception ex) { LogManager.getInstance().getLogger(typeof(OpProRoleInfo)).Error(ex); if(ex.Message.Contains("插入重复键"))//违反了唯一键 { throw new AppException("此对象已经存在");//此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示 } throw new AppException("保存失败"); } pOpProRoleInfo.opProRoleId = pOpProRole.OpProRoleId; //如果缓存存在,更新缓存 if (CachedEntityCommander.IsTypeRegistered(typeof(OpProRoleInfo))) { ResetCache(); } }
//从后台获取数据 internal static void LoadFromDAL(OpProRoleInfo pOpProRoleInfo, OpProRole pOpProRole) { pOpProRoleInfo.opProRoleId = pOpProRole.OpProRoleId; pOpProRoleInfo.operationId = pOpProRole.OperationId; pOpProRoleInfo.processId = pOpProRole.ProcessId; pOpProRoleInfo.roleId = pOpProRole.RoleId; pOpProRoleInfo.Loaded=true; }
/// <summary> /// 保存 /// </summary> public override void Save() { if(!m_Loaded)//新增 { OpProRole opProRole=new OpProRole(); SaveToDb(this, opProRole,true); } else//修改 { OpProRole opProRole=new OpProRole(opProRoleId); if(opProRole.IsNew) throw new AppException("该数据已经不存在了"); SaveToDb(this, opProRole,false); } }