Beispiel #1
0
        public ISagaStorage GetSagaStorage()
        {
            var mySqlSagaStorage = new MySqlSagaStorage(MySqlTestHelper.ConnectionHelper, "saga_data", "saga_index", new ConsoleLoggerFactory(false));

            mySqlSagaStorage.EnsureTablesAreCreated();
            return(mySqlSagaStorage);
        }
Beispiel #2
0
        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);
            });
        }
Beispiel #4
0
        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);
            });
        }