public SagaStore( ICommandBus bus, ISagaSerializer sagaSerializer, InfrastructureContext db) { this.bus = bus ?? throw new ArgumentNullException("bus"); this.sagaSerializer = sagaSerializer ?? throw new ArgumentNullException("sagaSerializer"); this.db = db ?? throw new ArgumentNullException("db"); }
/// <summary> /// Constructs the saga storage, using the specified connection provider and tables for persistence. /// </summary> public MySqlSagaStorage(IDbConnectionProvider connectionProvider, string dataTableName, string indexTableName, IRebusLoggerFactory rebusLoggerFactory, ISagaTypeNamingStrategy sagaTypeNamingStrategy, ISagaSerializer sagaSerializer) { _connectionProvider = connectionProvider ?? throw new ArgumentNullException(nameof(connectionProvider)); if (dataTableName == null) { throw new ArgumentNullException(nameof(dataTableName)); } if (indexTableName == null) { throw new ArgumentNullException(nameof(indexTableName)); } if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _sagaTypeNamingStrategy = sagaTypeNamingStrategy ?? throw new ArgumentNullException(nameof(sagaTypeNamingStrategy)); _log = rebusLoggerFactory.GetLogger <MySqlSagaStorage>(); _sagaSerializer = sagaSerializer; _dataTableName = TableName.Parse(dataTableName); _indexTableName = TableName.Parse(indexTableName); }
/// <summary> /// Configures saga to use your own custom saga serializer /// </summary> public static void UseSagaSerializer(this StandardConfigurer <ISagaStorage> configurer, ISagaSerializer serializer = null) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } var serializerInstance = serializer ?? new DefaultSagaSerializer(); configurer.OtherService <ISagaSerializer>().Decorate(c => serializerInstance); }
public InMemorySagaStorage(ISagaSerializer sagaSerializer) { _sagaSerializer = sagaSerializer ?? throw new ArgumentNullException(nameof(sagaSerializer)); }