protected AdoNetSagaPersister CreatePersister(bool createTables = false) { var result = new AdoNetSagaPersister(_manager, SagaTableName, SagaIndexTableName, false); if (createTables) { result.EnsureTablesAreCreated(); } return(result); }
/// <summary> /// Configures Rebus to store sagas in AdoNet. /// </summary> public static AdoNetSagaPersisterFluentConfigurer StoreInAdoNet(this RebusSagasConfigurer configurer, string connectionStringName, string sagaTable, string sagaIndexTable) { var connString = GetConnectionString(connectionStringName); var factory = new AdoNetConnectionFactory(connString.ConnectionString, connString.ProviderName); var manager = new AdoNetUnitOfWorkManager(factory); configurer.Backbone.ConfigureEvents(x => x.AddUnitOfWorkManager(manager)); var persister = new AdoNetSagaPersister(manager, sagaTable, sagaIndexTable); configurer.Use(persister); return(persister); }
protected AdoNetSagaPersister CreatePersister(bool createTables = false, bool useLocking = false, bool useNoWaitLocking = false) { var result = new AdoNetSagaPersister(_manager, SagaTableName, SagaIndexTableName); if (createTables) { result.EnsureTablesAreCreated(); } if (useLocking) { result.UseLockingOnSagaUpdates(!useNoWaitLocking); } return(result); }
private static void TestFindSagaByPropertyWithType <TProperty>(AdoNetSagaPersister persister, TProperty propertyValueToUse) { var propertyTypeToTest = typeof(TProperty); var type = typeof(GenericSagaData <>); var sagaDataType = type.MakeGenericType(propertyTypeToTest); var savedSagaData = (ISagaData)Activator.CreateInstance(sagaDataType); var savedSagaDataId = Guid.NewGuid(); var propertyName = nameof(GenericSagaData <TProperty> .Property); savedSagaData.Id = savedSagaDataId; sagaDataType.GetProperty(propertyName).SetValue(savedSagaData, propertyValueToUse, new object[0]); persister.Insert(savedSagaData, new[] { propertyName }); var foundSagaData = persister.Find <GenericSagaData <TProperty> >(propertyName, propertyValueToUse); Assert.That(foundSagaData.Id, Is.EqualTo(savedSagaDataId)); }
/// <summary> /// Configures Rebus to store sagas in AdoNet. /// </summary> public static AdoNetSagaPersisterFluentConfigurer StoreInAdoNet(this RebusSagasConfigurer configurer, string connectionStringName, string sagaTable, string sagaIndexTable, UOWCreatorDelegate unitOfWorkCreator = null) { if (unitOfWorkCreator == null) { unitOfWorkCreator = (fact, cont) => new AdoNetUnitOfWork(fact, cont); } var connString = GetConnectionString(connectionStringName); var factory = new AdoNetConnectionFactory(connString.ConnectionString, connString.ProviderName); var manager = new AdoNetUnitOfWorkManager(factory, unitOfWorkCreator); configurer.Backbone.ConfigureEvents(x => x.AddUnitOfWorkManager(manager)); var persister = new AdoNetSagaPersister(manager, sagaTable, sagaIndexTable); configurer.Use(persister); return(persister); }