예제 #1
0
 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");
 }
예제 #2
0
        /// <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));
 }