/// <summary> /// Configures Rebus to use Azure Service Bus to transport messages as a one-way client (i.e. will not be able to receive any messages) /// </summary> public static void UseAzureServiceBusAsOneWayClient(this StandardConfigurer <ITransport> configurer, string connectionStringNameOrConnectionString) { var connectionString = GetConnectionString(connectionStringNameOrConnectionString); configurer .OtherService <AzureServiceBusTransport>() .Register(c => { var rebusLoggerFactory = c.Get <IRebusLoggerFactory>(); var asyncTaskFactory = c.Get <IAsyncTaskFactory>(); return(new AzureServiceBusTransport(connectionString, null, rebusLoggerFactory, asyncTaskFactory)); }); configurer .OtherService <ISubscriptionStorage>() .Register(c => c.Get <AzureServiceBusTransport>(), description: AsbSubStorageText); configurer.Register(c => c.Get <AzureServiceBusTransport>()); configurer.OtherService <ITimeoutManager>().Register(c => new DisabledTimeoutManager(), description: AsbTimeoutManagerText); OneWayClientBackdoor.ConfigureOneWayClient(configurer); }
/// <summary> /// Configures Rebus to use MSMQ to transport messages, receiving messages from the specified <paramref name="inputQueueName"/> /// </summary> public static MsmqTransportConfigurationBuilder UseMsmq(this StandardConfigurer <ITransport> configurer, string inputQueueName) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } if (inputQueueName == null) { throw new ArgumentNullException(nameof(inputQueueName)); } var builder = new MsmqTransportConfigurationBuilder(); configurer.Register(c => { var rebusLoggerFactory = c.Get <IRebusLoggerFactory>(); var transport = new MsmqTransport(inputQueueName, rebusLoggerFactory); builder.Configure(transport); return(transport); }); return(builder); }
/// <summary> /// Configures Rebus to use SQL Server to store sagas, using the tables specified to store data and indexed properties respectively. /// </summary> public static void StoreInSqlServer(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, rebusLoggerFactory); var sagaStorage = new SqlServerSagaStorage(connectionProvider, dataTableName, indexTableName, rebusLoggerFactory); if (automaticallyCreateTables) { sagaStorage.EnsureTablesAreCreated(); } return sagaStorage; }); }