public override void CreateUninitializedItem(HttpContext context, string id, int timeout) { OracleConnectionHolder connectionHolder = (OracleConnectionHolder)null; OracleCommand oracleCommand = (OracleCommand)null; try { connectionHolder = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); byte[] buffer; int length; OracleSessionStateStore.SerializeSessionStateStoreData(this.CreateNewStoreData(context, timeout), 2000, out buffer, out length); oracleCommand = new OracleCommand("ora_aspnet_Sessn_InsUninitItem", connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.StoredProcedure; oracleCommand.Parameters.Add(new OracleParameter("OutResult", (OracleDbType)112, ParameterDirection.ReturnValue)); ((DbParameter)oracleCommand.Parameters[0]).DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)(id + this.m_appID); oracleCommand.Parameters.Add(new OracleParameter("itemShort", (OracleDbType)120, 2000)); ((DbParameter)oracleCommand.Parameters[2]).Size = length; ((DbParameter)oracleCommand.Parameters[2]).Value = (object)buffer; oracleCommand.Parameters.Add(new OracleParameter(nameof(timeout), (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[3]).Value = (object)timeout; ((DbCommand)oracleCommand).ExecuteNonQuery(); } catch { throw; } finally { ((Component)oracleCommand)?.Dispose(); connectionHolder?.Close(); } }
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { bool flag; Util.CheckParameter(ref roleName, true, true, true, 256, "roleName"); OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; try { try { connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_Roles_DeleteRole", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; oracleCommand.Parameters.Add(new OracleParameter("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue)); oracleCommand.Parameters[0].DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter("ApplicationName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[1].Value = this.m_ApplicationName; oracleCommand.Parameters.Add(new OracleParameter("RoleName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[2].Value = roleName; oracleCommand.Parameters.Add(new OracleParameter("DeleteOnlyIfRoleIsEmpty", OracleDbType.Int32)); if (!throwOnPopulatedRole) { oracleCommand.Parameters[3].Value = 0; } else { oracleCommand.Parameters[3].Value = 1; } oracleCommand.ExecuteNonQuery(); int value = (int)oracleCommand.Parameters[0].Value; if (value == -3005) { throw new ProviderException(MsgManager.GetMsg(ErrRes.ROLE_IS_NOT_EMPTY, new string[0])); } flag = value == 0; } catch { throw; } } finally { if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } return(flag); }
/// <summary> /// Configures the data bus to store data in a central Oracle table /// </summary> public static void StoreInOracle(this StandardConfigurer <IDataBusStorage> configurer, string connectionString, string tableName, Action <OracleConnection> additionalConnectionSetup = null, bool enlistInAmbientTransaction = false, bool automaticallyCreateTables = true) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } if (connectionString == null) { throw new ArgumentNullException(nameof(connectionString)); } if (tableName == null) { throw new ArgumentNullException(nameof(tableName)); } configurer.Register(c => { var loggerFactory = c.Get <IRebusLoggerFactory>(); var rebusTime = c.Get <IRebusTime>(); var connectionHelper = new OracleConnectionHelper(connectionString, additionalConnectionSetup, enlistInAmbientTransaction); var storage = new OracleDataBusStorage(connectionHelper, tableName, loggerFactory, rebusTime); if (automaticallyCreateTables) { storage.EnsureTableIsCreated(); } return(storage); }); }
/// <summary> /// Executes sql statements from a file on the databse. /// </summary> /// <param name="fileName">The name of the file conatining the statements</param> internal static void ExecuteStatementsOfSqlFile(string fileName) { //Load the insert statements from file string fileContent = File.ReadAllText(fileName); string[] statements = fileContent.Split(';'); //Get the connection string from config string connectionName = ConfigManager.GetInstance().GetValue( HermesScheduleItemPersistenceProvider.DefaultNamespace, "connectionName"); //Run each insert statement using (OracleConnection conn = OracleConnectionHelper.GetPooledConnection(null, connectionName)) { conn.Open(); using (OracleCommand command = new OracleCommand()) { foreach (string statement in statements) { command.CommandText = statement; command.Connection = conn; command.ExecuteNonQuery(); } } } }
public override void ResetItemTimeout(HttpContext context, string id) { OracleConnectionHolder connectionHolder = (OracleConnectionHolder)null; OracleCommand oracleCommand = (OracleCommand)null; try { connectionHolder = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_Sessn_ResetTimeout", connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.StoredProcedure; oracleCommand.Parameters.Add(new OracleParameter("OutResult", (OracleDbType)112, ParameterDirection.ReturnValue)); ((DbParameter)oracleCommand.Parameters[0]).DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)(id + this.m_appID); ((DbCommand)oracleCommand).ExecuteNonQuery(); } catch { throw; } finally { ((Component)oracleCommand)?.Dispose(); connectionHolder?.Close(); } }
/// <summary> /// Constructs the timeout manager /// </summary> public OracleTimeoutManager(OracleConnectionHelper connectionHelper, string tableName, IRebusLoggerFactory rebusLoggerFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _tableName = tableName ?? throw new ArgumentNullException(nameof(tableName)); _log = rebusLoggerFactory.GetLogger <OracleTimeoutManager>(); }
public override string[] GetAllRoles() { string[] strArrays; OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; OracleDataReader oracleDataReader = null; try { try { StringCollection stringCollections = new StringCollection(); connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_Roles_GetAllRoles", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; OracleParameter oracleParameter = oracleCommand.Parameters.Add("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue); oracleParameter.DbType = DbType.Int32; OracleParameter mApplicationName = oracleCommand.Parameters.Add("ApplicationName_", OracleDbType.NVarchar2); mApplicationName.Value = this.m_ApplicationName; oracleCommand.Parameters.Add("RoleCursor", OracleDbType.RefCursor).Direction = ParameterDirection.Output; oracleDataReader = oracleCommand.ExecuteReader(); while (oracleDataReader.Read()) { stringCollections.Add(oracleDataReader.GetString(0)); } string[] strArrays1 = new string[stringCollections.Count]; stringCollections.CopyTo(strArrays1, 0); strArrays = strArrays1; } catch { throw; } } finally { if (oracleDataReader != null) { oracleDataReader.Dispose(); } if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } return(strArrays); }
/// <summary> /// Creates the data storage /// </summary> public OracleDataBusStorage(OracleConnectionHelper connectionHelper, string tableName, IRebusLoggerFactory rebusLoggerFactory, IRebusTime rebusTime) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _table = new DbName(tableName) ?? throw new ArgumentNullException(nameof(tableName)); _log = rebusLoggerFactory.GetLogger <OracleDataBusStorage>(); _rebusTime = rebusTime ?? throw new ArgumentNullException(nameof(rebusTime)); }
/// <summary> /// Constructs the subscription storage, storing subscriptions in the specified <paramref name="tableName"/>. /// If <paramref name="isCentralized"/> is true, subscribing/unsubscribing will be short-circuited by manipulating /// subscriptions directly, instead of requesting via messages /// </summary> public OracleSubscriptionStorage(OracleConnectionHelper connectionHelper, string tableName, bool isCentralized, IRebusLoggerFactory rebusLoggerFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _tableName = tableName ?? throw new ArgumentNullException(nameof(tableName)); IsCentralized = isCentralized; _log = rebusLoggerFactory.GetLogger <OracleSubscriptionStorage>(); }
public override void CreateRole(string roleName) { Util.CheckParameter(ref roleName, true, true, true, 256, "roleName"); OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; try { try { connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_Roles_CreateRole", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; oracleCommand.Parameters.Add(new OracleParameter("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue)); oracleCommand.Parameters[0].DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter("ApplicationName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[1].Value = this.m_ApplicationName; oracleCommand.Parameters.Add(new OracleParameter("RoleName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[2].Value = roleName; oracleCommand.ExecuteNonQuery(); int value = (int)oracleCommand.Parameters[0].Value; if (value == -3000) { int pROVIDERROLEALREADYEXISTS = ErrRes.PROVIDER_ROLE_ALREADY_EXISTS; string[] strArrays = new string[] { roleName }; throw new ProviderException(MsgManager.GetMsg(pROVIDERROLEALREADYEXISTS, strArrays)); } if (value == 0) { return; } } catch { throw; } } finally { if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } }
/// <summary> /// Constructs the saga storage /// </summary> public OracleSqlSagaStorage(OracleConnectionHelper connectionHelper, string dataTableName, string indexTableName, IRebusLoggerFactory rebusLoggerFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _dataTableName = dataTableName ?? throw new ArgumentNullException(nameof(dataTableName)); _indexTableName = indexTableName ?? throw new ArgumentNullException(nameof(indexTableName)); _log = rebusLoggerFactory.GetLogger <OracleSqlSagaStorage>(); }
public override void Initialize(string name, NameValueCollection config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } if (string.IsNullOrEmpty(name)) { name = "Oracle.Web.SessionState.OracleSessionStateStoreProvider"; } Util.HandleDescriptionAttribute(config, ErrRes.SESSIONSTATE_PROVIDER_DESCRIPTION); base.Initialize(name, config); this.m_CommandTimeout = Convert.ToInt32(Util.GetConfigValue(config["commandTimeout"], "30")); if (this.m_CommandTimeout < 0 || this.m_CommandTimeout > int.MaxValue) { throw new ProviderException(MsgManager.GetMsg(ErrRes.PROVIDER_INVALID_COMMANDTIMEOUT_VALUE)); } this.m_OracleConnectionString = Util.ReadConnectionString(config).Trim(); config.Remove("connectionStringName"); config.Remove("commandTimeout"); Util.CheckForUnrecognizedAttribute(config); this.pApplicationName = HttpRuntime.AppDomainAppId; OracleConnectionHolder connectionHolder = (OracleConnectionHolder)null; OracleCommand oracleCommand = (OracleCommand)null; try { connectionHolder = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_SessnApp_GetAppID", connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.StoredProcedure; oracleCommand.Parameters.Add(new OracleParameter("OutResult", (OracleDbType)112, ParameterDirection.ReturnValue)); ((DbParameter)oracleCommand.Parameters[0]).DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter("appName_", (OracleDbType)119, 280)); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)this.pApplicationName; oracleCommand.Parameters.Add(new OracleParameter("appId_", (OracleDbType)120, ParameterDirection.Output)); ((DbParameter)oracleCommand.Parameters[2]).Size = 16; ((DbParameter)oracleCommand.Parameters[2]).DbType = DbType.Binary; ((DbCommand)oracleCommand).ExecuteNonQuery(); this.m_appID = new Guid((byte[])((DbParameter)oracleCommand.Parameters[2]).Value).ToString(); } catch { throw; } finally { ((Component)oracleCommand)?.Dispose(); connectionHolder?.Close(); } }
public ITransport Create(string inputQueueAddress) { var consoleLoggerFactory = new ConsoleLoggerFactory(false); var connectionHelper = new OracleConnectionHelper(OracleTestHelper.ConnectionString); var asyncTaskFactory = new TplAsyncTaskFactory(consoleLoggerFactory); var transport = new OracleTransport(connectionHelper, _tableName, inputQueueAddress, consoleLoggerFactory, asyncTaskFactory, _fakeRebusTime); _disposables.Add(transport); transport.EnsureTableIsCreated(); transport.Initialize(); return(transport); }
protected override void SetUp() { var consoleLoggerFactory = new ConsoleLoggerFactory(false); var asyncTaskFactory = new TplAsyncTaskFactory(consoleLoggerFactory); var connectionHelper = new OracleConnectionHelper(OracleTestHelper.ConnectionString); _transport = new OracleTransport(connectionHelper, _tableName, QueueName, consoleLoggerFactory, asyncTaskFactory, new FakeRebusTime()); _transport.EnsureTableIsCreated(); Using(_transport); _transport.Initialize(); _cancellationToken = new CancellationTokenSource().Token; }
public override bool RoleExists(string roleName) { bool flag; Util.CheckParameter(ref roleName, true, true, true, 256, "roleName"); OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; try { try { connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_Roles_RoleExists", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; oracleCommand.Parameters.Add(new OracleParameter("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue)); oracleCommand.Parameters[0].DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter("ApplicationName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[1].Value = this.m_ApplicationName; oracleCommand.Parameters.Add(new OracleParameter("RoleName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[2].Value = roleName; oracleCommand.ExecuteNonQuery(); flag = ((int)oracleCommand.Parameters[0].Value != 0 ? false : true); } catch { throw; } } finally { if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } return(flag); }
public ITransport Create(string inputQueueAddress) { var tableName = ("rebus_messages_" + TestConfig.Suffix).TrimEnd('_'); _tablesToDrop.Add(tableName); var consoleLoggerFactory = new ConsoleLoggerFactory(false); var connectionHelper = new OracleConnectionHelper(OracleTestHelper.ConnectionString); var asyncTaskFactory = new TplAsyncTaskFactory(consoleLoggerFactory); var transport = new OracleTransport(connectionHelper, tableName, inputQueueAddress, consoleLoggerFactory, asyncTaskFactory); _disposables.Add(transport); transport.EnsureTableIsCreated(); transport.Initialize(); return(transport); }
/// <summary> /// Configures Rebus to use Oracle to store subscriptions. Use <paramref name="isCentralized"/> = true to indicate whether it's OK to short-circuit /// subscribing and unsubscribing by manipulating the subscription directly from the subscriber or just let it default to false to preserve the /// default behavior. /// </summary> public static void StoreInOracle(this StandardConfigurer <ISubscriptionStorage> configurer, string connectionString, string tableName, bool isCentralized = false, bool automaticallyCreateTables = true, Action <OracleConnection> additionalConnectionSetup = null) { configurer.Register(c => { var rebusLoggerFactory = c.Get <IRebusLoggerFactory>(); var connectionHelper = new OracleConnectionHelper(connectionString, additionalConnectionSetup); var subscriptionStorage = new OracleSubscriptionStorage( connectionHelper, tableName, isCentralized, rebusLoggerFactory); if (automaticallyCreateTables) { subscriptionStorage.EnsureTableIsCreated(); } return(subscriptionStorage); }); }
static OracleTransport GetTransport() { var loggerFactory = new ConsoleLoggerFactory(false); var connectionProvider = new OracleConnectionHelper(OracleTestHelper.ConnectionString); var asyncTaskFactory = new TplAsyncTaskFactory(loggerFactory); var transport = new OracleTransport( connectionProvider, TableName, QueueName, loggerFactory, asyncTaskFactory ); transport.EnsureTableIsCreated(); transport.Initialize(); return(transport); }
/// <summary> /// /// </summary> /// <param name="connectionHelper"></param> /// <param name="tableName"></param> /// <param name="inputQueueName"></param> /// <param name="rebusLoggerFactory"></param> /// <param name="asyncTaskFactory"></param> public OracleTransport(OracleConnectionHelper connectionHelper, string tableName, string inputQueueName, IRebusLoggerFactory rebusLoggerFactory, IAsyncTaskFactory asyncTaskFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } if (asyncTaskFactory == null) { throw new ArgumentNullException(nameof(asyncTaskFactory)); } _log = rebusLoggerFactory.GetLogger <OracleTransport>(); _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _tableName = tableName ?? throw new ArgumentNullException(nameof(tableName)); _inputQueueName = inputQueueName; _expiredMessagesCleanupTask = asyncTaskFactory.Create("ExpiredMessagesCleanup", PerformExpiredMessagesCleanupCycle, intervalSeconds: 60); ExpiredMessagesCleanupInterval = DefaultExpiredMessagesCleanupInterval; }
/// <summary> /// /// </summary> /// <param name="connectionHelper"></param> /// <param name="options"></param> /// <param name="rebusLoggerFactory"></param> public OracleAQTransport(OracleConnectionHelper connectionHelper, OracleAQTransportOptions options, IRebusLoggerFactory rebusLoggerFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _log = rebusLoggerFactory.GetLogger <OracleAQTransport>(); _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _options = options ?? throw new ArgumentNullException(nameof(options)); if (_options.DequeueOptions == null) { throw new ArgumentNullException(nameof(_options.DequeueOptions)); } if (_options.EnqueueOptions == null) { throw new ArgumentNullException(nameof(_options.EnqueueOptions)); } }
/// <summary> /// Creats connection. /// </summary> /// /// <returns></returns> public static IDbConnection CreateConnection() { return(OracleConnectionHelper.GetPooledConnection(DbUserName, DataSource)); }
public override void RemoveUsersFromRoles(string[] userNames, string[] roleNames) { Util.CheckArrayParameter(ref roleNames, true, true, true, 256, "roleNames"); Util.CheckArrayParameter(ref userNames, true, true, true, 256, "userNames"); string empty = string.Empty; string str = string.Empty; OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; try { try { connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_UIR_RemUsersFmRoles", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; OracleParameter oracleParameter = oracleCommand.Parameters.Add("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue); oracleParameter.DbType = DbType.Int32; OracleParameter mApplicationName = oracleCommand.Parameters.Add("ApplicationName_", OracleDbType.NVarchar2); mApplicationName.Value = this.m_ApplicationName; OracleParameter length = oracleCommand.Parameters.Add("UserNames_", OracleDbType.NVarchar2); length.CollectionType = OracleCollectionType.PLSQLAssociativeArray; length.Size = (int)userNames.Length; length.Value = userNames; OracleParameter length1 = oracleCommand.Parameters.Add("UserNames_Arr_Size", OracleDbType.Int32); length1.Value = (int)userNames.Length; OracleParameter oracleParameter1 = oracleCommand.Parameters.Add("RoleNames_", OracleDbType.NVarchar2); oracleParameter1.CollectionType = OracleCollectionType.PLSQLAssociativeArray; oracleParameter1.Size = (int)roleNames.Length; oracleParameter1.Value = roleNames; OracleParameter length2 = oracleCommand.Parameters.Add("RoleNames_Arr_Size", OracleDbType.Int32); length2.Value = (int)roleNames.Length; OracleParameter oracleParameter2 = oracleCommand.Parameters.Add("UserName", OracleDbType.NVarchar2, OracleRoleProvider.MAX_NAME_SIZE); oracleParameter2.Direction = ParameterDirection.Output; OracleParameter oracleParameter3 = oracleCommand.Parameters.Add("RoleName", OracleDbType.NVarchar2, OracleRoleProvider.MAX_NAME_SIZE); oracleParameter3.Direction = ParameterDirection.Output; oracleCommand.ExecuteNonQuery(); int value = (int)oracleCommand.Parameters[0].Value; if (oracleCommand.Parameters[6].Value.ToString() != "null") { str = oracleCommand.Parameters[6].Value.ToString(); } if (oracleCommand.Parameters[7].Value.ToString() != "null") { empty = oracleCommand.Parameters[7].Value.ToString(); } int num = value; switch (num) { case -3004: { int pROVIDERTHISUSERNOTFOUND = ErrRes.PROVIDER_THIS_USER_NOT_FOUND; string[] strArrays = new string[] { str }; throw new ProviderException(MsgManager.GetMsg(pROVIDERTHISUSERNOTFOUND, strArrays)); } case -3003: { int pROVIDERTHISUSERALREADYNOTINROLE = ErrRes.PROVIDER_THIS_USER_ALREADY_NOT_IN_ROLE; string[] strArrays1 = new string[] { str, empty }; throw new ProviderException(MsgManager.GetMsg(pROVIDERTHISUSERALREADYNOTINROLE, strArrays1)); } case -3002: { break; } case -3001: { int pROVIDERROLENOTFOUND = ErrRes.PROVIDER_ROLE_NOT_FOUND; string[] strArrays2 = new string[] { empty }; throw new ProviderException(MsgManager.GetMsg(pROVIDERROLENOTFOUND, strArrays2)); } default: { if (num != 0) { goto case -3002; } return; } } } catch { throw; } } finally { if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } }
public override bool IsUserInRole(string userName, string roleName) { bool flag; Util.CheckParameter(ref roleName, true, true, true, 256, "roleName"); Util.CheckParameter(ref userName, true, false, true, 256, "userName"); if (userName.Length < 1) { return(false); } OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; try { try { connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_UIR_IsUserInRole", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; oracleCommand.Parameters.Add(new OracleParameter("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue)); oracleCommand.Parameters[0].DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter("ApplicationName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[1].Value = this.m_ApplicationName; oracleCommand.Parameters.Add(new OracleParameter("UserName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[2].Value = userName; oracleCommand.Parameters.Add(new OracleParameter("RoleName_", OracleDbType.NVarchar2)); oracleCommand.Parameters[3].Value = roleName; oracleCommand.ExecuteNonQuery(); switch ((int)oracleCommand.Parameters[0].Value) { case 0: { flag = true; return(flag); } case 1: { flag = false; return(flag); } case 2: { flag = false; return(flag); } case 3: { flag = false; return(flag); } } flag = false; } catch { throw; } } finally { if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } return(flag); }
public override string[] GetUsersInRole(string roleName) { string[] strArrays; Util.CheckParameter(ref roleName, true, true, true, 256, "roleName"); OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; OracleDataReader oracleDataReader = null; try { try { StringCollection stringCollections = new StringCollection(); connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_UIR_GetUsersInRoles", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; OracleParameter oracleParameter = oracleCommand.Parameters.Add("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue); oracleParameter.DbType = DbType.Int32; OracleParameter mApplicationName = oracleCommand.Parameters.Add("ApplicationName_", OracleDbType.NVarchar2); mApplicationName.Value = this.m_ApplicationName; oracleCommand.Parameters.Add("RoleName_", OracleDbType.NVarchar2).Value = roleName; oracleCommand.Parameters.Add("UserCursor", OracleDbType.RefCursor).Direction = ParameterDirection.Output; oracleDataReader = oracleCommand.ExecuteReader(); int value = (int)oracleCommand.Parameters[0].Value; while (oracleDataReader.Read()) { stringCollections.Add(oracleDataReader.GetString(0)); } if (stringCollections.Count >= 1) { string[] strArrays1 = new string[stringCollections.Count]; stringCollections.CopyTo(strArrays1, 0); strArrays = strArrays1; } else { int num = value; if (num == -3001) { int pROVIDERROLENOTFOUND = ErrRes.PROVIDER_ROLE_NOT_FOUND; string[] strArrays2 = new string[] { roleName }; throw new ProviderException(MsgManager.GetMsg(pROVIDERROLENOTFOUND, strArrays2)); } strArrays = (num != 0 ? new string[0] : new string[0]); } } catch { throw; } } finally { if (oracleDataReader != null) { oracleDataReader.Dispose(); } if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } return(strArrays); }
public override string[] GetRolesForUser(string userName) { string[] strArrays; Util.CheckParameter(ref userName, true, false, true, 256, "userName"); if (userName.Length < 1) { return(new string[0]); } OracleConnectionHolder connection = null; OracleCommand oracleCommand = null; OracleDataReader oracleDataReader = null; try { try { StringCollection stringCollections = new StringCollection(); connection = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = new OracleCommand("ora_aspnet_UIR_GetRolesForUser", connection.Connection) { CommandTimeout = this.m_CommandTimeout, CommandType = CommandType.StoredProcedure }; OracleParameter oracleParameter = oracleCommand.Parameters.Add("OutResult", OracleDbType.Int32, ParameterDirection.ReturnValue); oracleParameter.DbType = DbType.Int32; OracleParameter mApplicationName = oracleCommand.Parameters.Add("ApplicationName_", OracleDbType.NVarchar2); mApplicationName.Value = this.m_ApplicationName; oracleCommand.Parameters.Add("UserName_", OracleDbType.NVarchar2).Value = userName; oracleCommand.Parameters.Add("RoleCursor", OracleDbType.RefCursor).Direction = ParameterDirection.Output; oracleDataReader = oracleCommand.ExecuteReader(); int value = (int)oracleCommand.Parameters[0].Value; while (oracleDataReader.Read()) { stringCollections.Add(oracleDataReader.GetString(0)); } if (stringCollections.Count >= 1) { string[] strArrays1 = new string[stringCollections.Count]; stringCollections.CopyTo(strArrays1, 0); strArrays = strArrays1; } else { strArrays = new string[0]; } } catch { throw; } } finally { if (oracleDataReader != null) { oracleDataReader.Dispose(); } if (oracleCommand != null) { oracleCommand.Dispose(); } if (connection != null) { connection.Close(); connection = null; } } return(strArrays); }
/// <summary> /// Constructs the storage /// </summary> public OracleSagaSnapshotStorage(OracleConnectionHelper connectionHelper, string tableName) { _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _tableName = tableName ?? throw new ArgumentNullException(nameof(tableName)); }
public OracleAQSchemaInitializer(IRebusLoggerFactory loggerFactory, OracleConnectionHelper connectionHelper) { _log = loggerFactory.GetLogger <OracleAQSchemaInitializer>(); _connectionHelper = connectionHelper; }
private SessionStateStoreData GetSessionStoreItem( HttpContext context, string id, bool getExclusive, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actionFlags) { MemoryStream memoryStream = (MemoryStream)null; OracleConnectionHolder connectionHolder = (OracleConnectionHolder)null; OracleCommand oracleCommand = (OracleCommand)null; locked = false; lockId = (object)null; lockAge = TimeSpan.Zero; actionFlags = SessionStateActions.None; try { connectionHolder = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); oracleCommand = !getExclusive ? new OracleCommand("ora_aspnet_Sessn_GetStateItem", connectionHolder.Connection) : new OracleCommand("ora_aspnet_Sessn_GetStateItmEx", connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.StoredProcedure; ((DbParameter)oracleCommand.Parameters.Add("OutResult", (OracleDbType)112, ParameterDirection.ReturnValue)).DbType = DbType.Int32; ((DbParameter)oracleCommand.Parameters.Add(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)).Value = (object)(id + this.m_appID); OracleParameter oracleParameter = oracleCommand.Parameters.Add("itemShort", (OracleDbType)120, ParameterDirection.Output); ((DbParameter)oracleParameter).Size = 2000; ((DbParameter)oracleParameter).DbType = DbType.Binary; ((DbParameter)oracleCommand.Parameters.Add(nameof(locked), (OracleDbType)112, ParameterDirection.Output)).DbType = DbType.Int32; ((DbParameter)oracleCommand.Parameters.Add(nameof(lockAge), (OracleDbType)112, ParameterDirection.Output)).DbType = DbType.Int32; ((DbParameter)oracleCommand.Parameters.Add("lockCookie", (OracleDbType)112, ParameterDirection.Output)).DbType = DbType.Int32; ((DbParameter)oracleCommand.Parameters.Add(nameof(actionFlags), (OracleDbType)112, ParameterDirection.Output)).DbType = DbType.Int32; oracleCommand.Parameters.Add("itemLong", (OracleDbType)102, ParameterDirection.Output); ((DbCommand)oracleCommand).ExecuteNonQuery(); if (Convert.IsDBNull(((DbParameter)oracleCommand.Parameters[3]).Value)) { return((SessionStateStoreData)null); } locked = (int)((DbParameter)oracleCommand.Parameters[3]).Value != 0; lockId = (object)(int)((DbParameter)oracleCommand.Parameters[5]).Value; actionFlags = (SessionStateActions)((DbParameter)oracleCommand.Parameters[6]).Value; if (locked) { lockAge = new TimeSpan(0, 0, (int)((DbParameter)oracleCommand.Parameters[4]).Value); if (lockAge > new TimeSpan(0, 0, 30758400)) { lockAge = TimeSpan.Zero; } return((SessionStateStoreData)null); } byte[] buffer = !Convert.IsDBNull(((DbParameter)oracleCommand.Parameters[2]).Value) ? (byte[])((DbParameter)oracleCommand.Parameters[2]).Value : ((OracleBlob)((DbParameter)oracleCommand.Parameters[7]).Value).Value; SessionStateStoreData sessionStateStoreData; try { memoryStream = new MemoryStream(buffer); sessionStateStoreData = OracleSessionStateStore.Deserialize(context, (Stream)memoryStream); } finally { memoryStream?.Close(); } return(sessionStateStoreData); } catch { throw; } finally { ((Component)oracleCommand)?.Dispose(); connectionHolder?.Close(); } }
public override void RemoveItem( HttpContext context, string id, object lockId, SessionStateStoreData item) { int num = (int)lockId; OracleCommand oracleCommand = (OracleCommand)null; try { oracleCommand = new OracleCommand("ora_aspnet_Sessn_RmStateItem", OracleConnectionHelper.GetConnection(this.m_OracleConnectionString).Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.StoredProcedure; oracleCommand.Parameters.Add(new OracleParameter("OutResult", (OracleDbType)112, ParameterDirection.ReturnValue)); ((DbParameter)oracleCommand.Parameters[0]).DbType = DbType.Int32; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)(id + this.m_appID); oracleCommand.Parameters.Add(new OracleParameter("lockCookie", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[2]).Value = (object)num; ((DbCommand)oracleCommand).ExecuteNonQuery(); } catch { throw; } finally { ((Component)oracleCommand)?.Dispose(); } }
public override void SetAndReleaseItemExclusive( HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem) { OracleConnectionHolder connectionHolder = (OracleConnectionHolder)null; OracleCommand oracleCommand = (OracleCommand)null; try { connectionHolder = OracleConnectionHelper.GetConnection(this.m_OracleConnectionString); byte[] buffer; int length; try { OracleSessionStateStore.SerializeSessionStateStoreData(item, 2000, out buffer, out length); } catch { if (!newItem) { this.ReleaseItemExclusive(context, id, lockId); } throw; } int num = lockId != null ? (int)lockId : 0; if (!newItem) { if (length <= 2000) { oracleCommand = new OracleCommand(OracleSessionStateStore.ora_aspnet_Sessn_UpdStateItem_CommandText, connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.Text; oracleCommand.BindByName = true; oracleCommand.Parameters.Add(new OracleParameter("itemShort", (OracleDbType)120, 2000)); ((DbParameter)oracleCommand.Parameters[0]).Size = length; ((DbParameter)oracleCommand.Parameters[0]).Value = (object)buffer; oracleCommand.Parameters.Add(new OracleParameter("itemLong", (OracleDbType)110)); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)DBNull.Value; oracleCommand.Parameters.Add(new OracleParameter("timeout", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[2]).Value = (object)item.Timeout; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[3]).Value = (object)(id + this.m_appID); oracleCommand.Parameters.Add(new OracleParameter("lockCookie", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[4]).Value = (object)num; ((DbCommand)oracleCommand).ExecuteNonQuery(); } else { oracleCommand = new OracleCommand(OracleSessionStateStore.ora_aspnet_Sessn_UpdStateItem_CommandText, connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.Text; oracleCommand.BindByName = true; oracleCommand.Parameters.Add(new OracleParameter("itemShort", (OracleDbType)120, 2000)); ((DbParameter)oracleCommand.Parameters[0]).Value = (object)DBNull.Value; if (length <= int.MaxValue) { oracleCommand.Parameters.Add(new OracleParameter("itemLong", (OracleDbType)110)); ((DbParameter)oracleCommand.Parameters[1]).Size = length; ((DbParameter)oracleCommand.Parameters[1]).Value = (object)buffer; } else { oracleCommand.Parameters.Add(new OracleParameter("itemLong", (OracleDbType)102)); OracleBlob oracleBlob = new OracleBlob(oracleCommand.Connection, true); ((Stream)oracleBlob).Write(buffer, 0, length); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)oracleBlob; } oracleCommand.Parameters.Add(new OracleParameter("timeout", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[2]).Value = (object)item.Timeout; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[3]).Value = (object)(id + this.m_appID); oracleCommand.Parameters.Add(new OracleParameter("lockCookie", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[4]).Value = (object)num; ((DbCommand)oracleCommand).ExecuteNonQuery(); } } else if (length <= 2000) { oracleCommand = new OracleCommand(OracleSessionStateStore.ora_aspnet_Sessn_InsStateItem_CommandText, connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.Text; oracleCommand.BindByName = true; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[0]).Value = (object)(id + this.m_appID); oracleCommand.Parameters.Add(new OracleParameter("itemShort", (OracleDbType)120, 2000)); ((DbParameter)oracleCommand.Parameters[1]).Size = length; ((DbParameter)oracleCommand.Parameters[1]).Value = (object)buffer; oracleCommand.Parameters.Add(new OracleParameter("itemLong", (OracleDbType)102)); ((DbParameter)oracleCommand.Parameters[2]).Value = (object)DBNull.Value; oracleCommand.Parameters.Add(new OracleParameter("timeout", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[3]).Value = (object)item.Timeout; ((DbCommand)oracleCommand).ExecuteNonQuery(); } else { oracleCommand = new OracleCommand(OracleSessionStateStore.ora_aspnet_Sessn_InsStateItem_CommandText, connectionHolder.Connection); ((DbCommand)oracleCommand).CommandTimeout = this.m_CommandTimeout; ((DbCommand)oracleCommand).CommandType = CommandType.Text; oracleCommand.BindByName = true; oracleCommand.Parameters.Add(new OracleParameter(nameof(id), (OracleDbType)119, OracleSessionStateStore.ID_LENGTH)); ((DbParameter)oracleCommand.Parameters[0]).Value = (object)(id + this.m_appID); oracleCommand.Parameters.Add(new OracleParameter("itemShort", (OracleDbType)120, 2000)); ((DbParameter)oracleCommand.Parameters[1]).Value = (object)DBNull.Value; if (length <= int.MaxValue) { oracleCommand.Parameters.Add(new OracleParameter("itemLong", (OracleDbType)110)); ((DbParameter)oracleCommand.Parameters[2]).Size = length; ((DbParameter)oracleCommand.Parameters[2]).Value = (object)buffer; } else { oracleCommand.Parameters.Add(new OracleParameter("itemLong", (OracleDbType)102)); OracleBlob oracleBlob = new OracleBlob(oracleCommand.Connection, true); ((Stream)oracleBlob).Write(buffer, 0, length); ((DbParameter)oracleCommand.Parameters[2]).Value = (object)oracleBlob; } oracleCommand.Parameters.Add(new OracleParameter("timeout", (OracleDbType)112)); ((DbParameter)oracleCommand.Parameters[3]).Value = (object)item.Timeout; ((DbCommand)oracleCommand).ExecuteNonQuery(); } } catch (OracleException ex) { if (newItem && ex.Number == 1) { return; } throw; } catch { throw; } finally { ((Component)oracleCommand)?.Dispose(); connectionHolder?.Close(); } }