protected override void LoadPersonalizationBlobs(WebPartManager webPartManager, string path, string userName, ref byte[] sharedDataBlob, ref byte[] userDataBlob) { sharedDataBlob = null; userDataBlob = null; AccessConnectionHolder connectionHolder = null; OleDbConnection connection = null; try { try { connectionHolder = GetConnectionHolder(); connection = connectionHolder.Connection; int applicationID = GetApplicationID(connectionHolder); if (applicationID != 0) { int pathID = AccessConnectionHelper.GetPathID(connection, applicationID, path); if (pathID != 0) { string sharedDataValue = LoadPersonalizationBlob(connection, pathID); sharedDataBlob = Deserialize(sharedDataValue); if (userName != null) { int userID = AccessConnectionHelper.GetUserID(connection, applicationID, userName); if (userID != 0) { string userDataValue = LoadPersonalizationBlob(connection, pathID, userID); userDataBlob = Deserialize(userDataValue); } } } } } finally { if (connectionHolder != null) { connectionHolder.Close(); connectionHolder = null; } } } catch { throw; } }
protected override void SavePersonalizationBlob(WebPartManager webPartManager, string path, string userName, byte[] dataBlob) { AccessConnectionHolder connectionHolder = null; OleDbConnection connection = null; try { try { string blobValue = Serialize(dataBlob); connectionHolder = GetConnectionHolder(); connection = connectionHolder.Connection; int applicationID = GetApplicationID(connectionHolder); if (applicationID != 0) { int pathID = AccessConnectionHelper.GetPathID(connection, applicationID, path, /* createIfNeeded */ true); if (pathID != 0) { if (String.IsNullOrEmpty(userName)) { SavePersonalizationBlob(connection, pathID, blobValue); } else { int userID = AccessConnectionHelper.GetUserID(connection, applicationID, userName, /* createIfNeeded */ true); if (userID != 0) { SavePersonalizationBlob(connection, pathID, userID, blobValue); } } } } } finally { if (connectionHolder != null) { connectionHolder.Close(); connectionHolder = null; } } } catch { throw; } }
protected override void ResetPersonalizationBlob(WebPartManager webPartManager, string path, string userName) { AccessConnectionHolder connectionHolder = null; OleDbConnection connection = null; try { try { connectionHolder = GetConnectionHolder(); connection = connectionHolder.Connection; int applicationID = GetApplicationID(connectionHolder); if (applicationID != 0) { int pathID = AccessConnectionHelper.GetPathID(connection, applicationID, path); if (pathID != 0) { if (String.IsNullOrEmpty(userName)) { ResetPersonalizationBlob(connection, pathID); } else { int userID = AccessConnectionHelper.GetUserID(connection, applicationID, userName); if (userID != 0) { ResetPersonalizationBlob(connection, pathID, userID); } } } } } finally { if (connectionHolder != null) { connectionHolder.Close(); connectionHolder = null; } } } catch { throw; } }
private int ResetUserStatePerUsers(string path, string [] usernames) { int count = 0; AccessConnectionHolder connectionHolder = null; OleDbConnection connection = null; bool beginTransCalled = false; try { try { connectionHolder = GetConnectionHolder(); connection = connectionHolder.Connection; int applicationID = GetApplicationID(connectionHolder); if (applicationID != 0) { OleDbCommand command = new OleDbCommand(null, connection); OleDbParameter userIdParam = command.Parameters.Add(new OleDbParameter("@UserId", OleDbType.Integer)); string fromAndWhereClause = " FROM aspnet_PagePersonalizationPerUser WHERE UserId = @UserId"; if (!String.IsNullOrEmpty(path)) { int pathId = AccessConnectionHelper.GetPathID(connection, applicationID, path); fromAndWhereClause += " AND PathId = @PathId"; command.Parameters.Add(new OleDbParameter("@PathId", pathId)); } string selectCommandText = "SELECT COUNT(*)" + fromAndWhereClause; string deleteCommandText = "DELETE" + fromAndWhereClause; OleDbCommand transCommand = new OleDbCommand("BEGIN TRANSACTION", connection); transCommand.ExecuteNonQuery(); beginTransCalled = true; foreach (string username in usernames) { command.CommandText = selectCommandText; userIdParam.Value = AccessConnectionHelper.GetUserID(connection, applicationID, username); int numOfRecords = (int)command.ExecuteScalar(); if (numOfRecords > 0) { command.CommandText = deleteCommandText; command.ExecuteNonQuery(); count += numOfRecords; } } transCommand.CommandText = "COMMIT TRANSACTION"; transCommand.ExecuteNonQuery(); } } catch { try { if (beginTransCalled) { OleDbCommand rollbackCommand = new OleDbCommand("ROLLBACK TRANSACTION", connection); rollbackCommand.ExecuteNonQuery(); } } catch { } throw; } finally { if (connectionHolder != null) { connectionHolder.Close(); connectionHolder = null; } } } catch { throw; } return(count); }
private int ResetStatePerPaths(string tableName, string [] paths) { if (paths == null || paths.Length == 0) { return(0); } int count = 0; AccessConnectionHolder connectionHolder = null; OleDbConnection connection = null; bool beginTransCalled = false; try { try { connectionHolder = GetConnectionHolder(); connection = connectionHolder.Connection; int applicationID = GetApplicationID(connectionHolder); if (applicationID != 0) { string fromAndWhereClause = " FROM " + tableName + " WHERE PathId = @PathId"; string selectCommandText = "SELECT COUNT(*)" + fromAndWhereClause; string deleteCommandText = "DELETE" + fromAndWhereClause; OleDbCommand command = new OleDbCommand(null, connection); OleDbParameter pathParam = command.Parameters.Add(new OleDbParameter("@PathId", OleDbType.Integer)); OleDbCommand transCommand = new OleDbCommand("BEGIN TRANSACTION", connection); transCommand.ExecuteNonQuery(); beginTransCalled = true; foreach (string path in paths) { command.CommandText = selectCommandText; pathParam.Value = AccessConnectionHelper.GetPathID(connection, applicationID, path); int numOfRecords = (int)command.ExecuteScalar(); if (numOfRecords > 0) { command.CommandText = deleteCommandText; command.ExecuteNonQuery(); count += numOfRecords; } } transCommand.CommandText = "COMMIT TRANSACTION"; transCommand.ExecuteNonQuery(); } } catch { try { if (beginTransCalled) { OleDbCommand rollbackCommand = new OleDbCommand("ROLLBACK TRANSACTION", connection); rollbackCommand.ExecuteNonQuery(); } } catch { } throw; } finally { if (connectionHolder != null) { connectionHolder.Close(); connectionHolder = null; } } } catch { throw; } return(count); }