/// <summary> /// 导出应用的所有数据 /// </summary> /// <param name="applicationId"></param> /// <returns></returns> public RightApplicationDataModel ExportApplicationData(string applicationId) { var appData = new RightApplicationDataModel(); appData.Application = GetApplication(applicationId); if (appData.Application == null) { throw new InfoException("应用不存在"); } appData.ObjectList = GetObjectList(applicationId); if (appData.ObjectList != null) { appData.OperationList = new List <RightObjectOperation>(); foreach (var obj in appData.ObjectList) { appData.OperationList.AddRange(GetObjectOperationList(obj.Id)); } } appData.RoleList = GetRoleList(applicationId); if (appData.RoleList != null) { appData.RoleUserList = new List <RightRoleUser>(); foreach (var role in appData.RoleList) { appData.RoleUserList.AddRange(GetRoleUserList(role.Id)); } } appData.RoleOperationList = db.Fetch <RightRoleOperation>(@" SELECT t1.Id, t1.RoleId, t1.OperationId FROM RM_T_RightRoleOperation t1 JOIN RM_T_RightRole t2 ON t2.Id = t1.RoleId JOIN RM_T_RightObjectOperation t3 ON t3.Id = t1.OperationId JOIN RM_T_RightObject t4 ON t4.Id = t3.ObjectId AND t4.ApplicationId = t2.ApplicationId WHERE t2.ApplicationId = @0", applicationId); return(appData); }
/// <summary> /// 导入应用数据 /// </summary> public void ImportApplicationData(KeyValuePair <string, string> user, RightApplicationDataModel appData) { db.BeginTransaction(); try { if (db.Exists <RightApplication>("ApplicationId = @0 OR ApplicationName = @1", appData.Application.ApplicationId, appData.Application.ApplicationName)) { throw new InfoException("应用已存在"); } appData.Application.Id = 0; db.Insert(appData.Application); logService.WriteInsertOperateLog(user, appData.Application.ApplicationId, appData.Application.Id, appData.Application); // 新增对象和对象操作 if (appData.ObjectList != null) { foreach (var obj in appData.ObjectList) { var oldObjId = obj.Id; obj.Id = 0; db.Insert(obj); logService.WriteInsertOperateLog(user, appData.Application.ApplicationId, obj.Id, obj); if (appData.OperationList != null) { var operationList = appData.OperationList.FindAll(a => a.ObjectId == oldObjId); foreach (var operation in operationList) { var oldOperationId = operation.Id; operation.Id = 0; operation.ObjectId = obj.Id; db.Insert(operation); logService.WriteInsertOperateLog(user, appData.Application.ApplicationId, operation.Id, operation); if (appData.RoleOperationList != null) { var roleOperationList = appData.RoleOperationList.FindAll(a => a.OperationId == oldOperationId); foreach (var roleOperation in roleOperationList) { roleOperation.OperationId = operation.Id; } } } } } } // 新增角色和角色用户 if (appData.RoleList != null) { foreach (var role in appData.RoleList) { var oldRoleId = role.Id; role.Id = 0; db.Insert(role); logService.WriteInsertOperateLog(user, appData.Application.ApplicationId, role.Id, role); if (appData.RoleUserList != null) { var userList = appData.RoleUserList.FindAll(a => a.RoleId == oldRoleId); foreach (var rolUser in userList) { rolUser.Id = 0; rolUser.RoleId = role.Id; db.Insert(rolUser); logService.WriteInsertOperateLog(user, appData.Application.ApplicationId, rolUser.Id, rolUser); } } if (appData.RoleOperationList != null) { var roleOperationList = appData.RoleOperationList.FindAll(a => a.RoleId == oldRoleId); foreach (var roleOperation in roleOperationList) { roleOperation.Id = 0; roleOperation.RoleId = role.Id; db.Insert(roleOperation); logService.WriteInsertOperateLog(user, appData.Application.ApplicationId, roleOperation.Id, roleOperation); } } } } db.CompleteTransaction(); } catch (Exception e) { db.AbortTransaction(); throw e; } }