public ISagaStorage GetSagaStorage() { var mySqlSagaStorage = new MySqlSagaStorage(MySqlTestHelper.ConnectionHelper, "saga_data", "saga_index", new ConsoleLoggerFactory(false)); mySqlSagaStorage.EnsureTablesAreCreated(); return(mySqlSagaStorage); }
public ISagaStorage GetSagaStorage() { var consoleLoggerFactory = new ConsoleLoggerFactory(true); var connectionProvider = new DbConnectionProvider(MySqlTestHelper.ConnectionString, consoleLoggerFactory); var sagaTypeNamingStrategy = new LegacySagaTypeNamingStrategy(); var serializer = new DefaultSagaSerializer(); var storage = new MySqlSagaStorage(connectionProvider, DataTableName, IndexTableName, consoleLoggerFactory, sagaTypeNamingStrategy, serializer); storage.EnsureTablesAreCreated(); return(storage); }
/// <summary> /// Configures Rebus to use MySQL to store sagas, using the tables specified to store data and indexed properties respectively. /// </summary> public static void StoreInMySql(this StandardConfigurer <ISagaStorage> configurer, string connectionString, string dataTableName, string indexTableName, bool automaticallyCreateTables = true) { configurer.Register(c => { var rebusLoggerFactory = c.Get <IRebusLoggerFactory>(); var sagaStorage = new MySqlSagaStorage(new MySqlConnectionHelper(connectionString), dataTableName, indexTableName, rebusLoggerFactory); if (automaticallyCreateTables) { AsyncHelpers.RunSync(() => sagaStorage.EnsureTablesAreCreated()); } return(sagaStorage); }); }
protected override void SetUp() { var loggerFactory = new ConsoleLoggerFactory(false); var connectionProvider = new DbConnectionProvider(MySqlTestHelper.ConnectionString, loggerFactory); var sagaTypeNamingStrategy = new LegacySagaTypeNamingStrategy(); var serializer = new DefaultSagaSerializer(); var dataTableName = TestConfig.GetName("sagas"); var indexTableName = TestConfig.GetName("sagaindex"); MySqlTestHelper.DropTable(indexTableName); MySqlTestHelper.DropTable(dataTableName); _storage = new MySqlSagaStorage(connectionProvider, dataTableName, indexTableName, loggerFactory, sagaTypeNamingStrategy, serializer); _storage.EnsureTablesAreCreated(); }
/// <summary> /// Configures Rebus to use MySQL to store sagas, using the tables specified to store data and indexed properties respectively. /// </summary> public static void StoreInMySql(this StandardConfigurer <ISagaStorage> configurer, MySqlSagaStorageOptions options, string dataTableName, string indexTableName) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (dataTableName == null) { throw new ArgumentNullException(nameof(dataTableName)); } if (indexTableName == null) { throw new ArgumentNullException(nameof(indexTableName)); } configurer.Register(c => { var rebusLoggerFactory = c.Get <IRebusLoggerFactory>(); var connectionProvider = options.ConnectionProviderFactory(c); var sagaTypeNamingStrategy = GetSagaTypeNamingStrategy(c, rebusLoggerFactory); var serializer = c.Has <ISagaSerializer>(false) ? c.Get <ISagaSerializer>() : new DefaultSagaSerializer(); var sagaStorage = new MySqlSagaStorage( connectionProvider: connectionProvider, dataTableName: dataTableName, indexTableName: indexTableName, rebusLoggerFactory: rebusLoggerFactory, sagaTypeNamingStrategy: sagaTypeNamingStrategy, sagaSerializer: serializer ); if (options.EnsureTablesAreCreated) { sagaStorage.EnsureTablesAreCreated(); } return(sagaStorage); }); }
/// <summary> /// Configures Rebus to use MySQL to store sagas, using the tables specified to store data and indexed properties respectively. /// </summary> public static void StoreInMySql(this StandardConfigurer <ISagaStorage> configurer, Func <Task <IDbConnection> > connectionFactory, string dataTableName, string indexTableName, bool automaticallyCreateTables = true) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } if (connectionFactory == null) { throw new ArgumentNullException(nameof(connectionFactory)); } if (dataTableName == null) { throw new ArgumentNullException(nameof(dataTableName)); } if (indexTableName == null) { throw new ArgumentNullException(nameof(indexTableName)); } configurer.Register(c => { var rebusLoggerFactory = c.Get <IRebusLoggerFactory>(); var connectionProvider = new DbConnectionFactoryProvider(connectionFactory); var sagaTypeNamingStrategy = GetSagaTypeNamingStrategy(c, rebusLoggerFactory); var serializer = c.Has <ISagaSerializer>(false) ? c.Get <ISagaSerializer>() : new DefaultSagaSerializer(); var sagaStorage = new MySqlSagaStorage(connectionProvider, dataTableName, indexTableName, rebusLoggerFactory, sagaTypeNamingStrategy, serializer); if (automaticallyCreateTables) { sagaStorage.EnsureTablesAreCreated(); } return(sagaStorage); }); }