Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SqlEventStoreConfiguration"/> class.
        /// </summary>
        /// <param name="entityName">The name of the entity the event store is for.</param>
        /// <param name="providerFactory">The <see cref="DbProviderFactory">provider factory</see> for underlying database operations.</param>
        /// <param name="connectionString">The database connection string.</param>
        /// <param name="tableName">The event store table name.</param>
        /// <param name="snapshots">The associated <see cref="SqlSnapshotConfiguration">snapshot configuration</see>.</param>
        /// <param name="messageTypeResolver">The <see cref="IMessageTypeResolver">message type resolver</see> used to deserialize messages.</param>
        /// <param name="serializerFactory">The <see cref="ISqlMessageSerializerFactory">factory</see> used to create new message serializers.</param>
        public SqlEventStoreConfiguration(
            string entityName,
            DbProviderFactory providerFactory,
            string connectionString,
            SqlIdentifier tableName,
            SqlSnapshotConfiguration snapshots,
            IMessageTypeResolver messageTypeResolver,
            ISqlMessageSerializerFactory serializerFactory)
        {
            Arg.NotNullOrEmpty(entityName, nameof(entityName));
            Arg.NotNull(providerFactory, nameof(providerFactory));
            Arg.NotNullOrEmpty(connectionString, nameof(connectionString));
            Arg.NotNull(snapshots, nameof(snapshots));
            Arg.NotNull(messageTypeResolver, nameof(messageTypeResolver));
            Arg.NotNull(serializerFactory, nameof(serializerFactory));

            EntityName             = entityName;
            ProviderFactory        = providerFactory;
            this.connectionString  = connectionString;
            this.serializerFactory = serializerFactory;
            TableName           = tableName;
            Snapshots           = snapshots;
            MessageTypeResolver = messageTypeResolver;
            EventSerializer     = serializerFactory.NewSerializer <IEvent>();
            Sql = new SqlBuilder(this, snapshots);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SqlMessageQueueConfiguration"/> class.
        /// </summary>
        /// <param name="clock">The <see cref="IClock">clock</see> used for temporal calculations.</param>
        /// <param name="providerFactory">The <see cref="DbProviderFactory">provider factory</see> for underlying database operations.</param>
        /// <param name="connectionString">The database connection string.</param>
        /// <param name="messageQueueTableName">The <see cref="SqlIdentifier">identifier</see> of the message queue table.</param>
        /// <param name="subscriptionTableName">The <see cref="SqlIdentifier">identifier</see> of the subscription table.</param>
        /// <param name="subscriptionQueueTableName">The <see cref="SqlIdentifier">identifier</see> of the subscription queue table.</param>
        /// <param name="messageTypeResolver">The <see cref="IMessageTypeResolver">message type resolver</see> used to deserialize messages.</param>
        /// <param name="serializerFactory">The <see cref="ISqlMessageSerializerFactory">factory</see> used to create new message serializers.</param>
        public SqlMessageQueueConfiguration(
            IClock clock,
            DbProviderFactory providerFactory,
            string connectionString,
            SqlIdentifier messageQueueTableName,
            SqlIdentifier subscriptionTableName,
            SqlIdentifier subscriptionQueueTableName,
            IMessageTypeResolver messageTypeResolver,
            ISqlMessageSerializerFactory serializerFactory)
        {
            Arg.NotNull(providerFactory, nameof(providerFactory));
            Arg.NotNullOrEmpty(connectionString, nameof(connectionString));
            Arg.NotNull(messageTypeResolver, nameof(messageTypeResolver));
            Arg.NotNull(serializerFactory, nameof(serializerFactory));

            Clock                      = clock;
            ProviderFactory            = providerFactory;
            this.connectionString      = connectionString;
            MessageQueueTableName      = messageQueueTableName;
            SubscriptionTableName      = subscriptionTableName;
            SubscriptionQueueTableName = subscriptionQueueTableName;
            MessageTypeResolver        = messageTypeResolver;
            MessageSerializer          = serializerFactory.NewSerializer <IMessage>();
            Sql = new SqlBuilder(messageQueueTableName, subscriptionTableName, subscriptionQueueTableName);
        }
        /// <summary>
        /// Applies the specified message serializer factory to the configuration.
        /// </summary>
        /// <param name="value">The configured <see cref="ISqlMessageSerializerFactory">message serializer factory</see>.</param>
        /// <returns>The original <see cref="SqlEventStoreConfigurationBuilder">builder</see>.</returns>
        public virtual SqlEventStoreConfigurationBuilder UseMessageSerializerFactory(ISqlMessageSerializerFactory value)
        {
            Arg.NotNull(value, nameof(value));
            Contract.Ensures(Contract.Result <SqlEventStoreConfigurationBuilder>() != null);

            NewMessageSerializerFactory = _ => value;
            return(this);
        }
 internal TestSqlSagaStorageConfiguration(
     DbProviderFactory providerFactory,
     string connectionString,
     SqlIdentifier tableName,
     IMessageTypeResolver messageTypeResolver,
     ISqlMessageSerializerFactory serializerFactory)
     : base(providerFactory, connectionString, tableName, messageTypeResolver, serializerFactory)
 {
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="SqlSagaStorageConfiguration"/> class.
        /// </summary>
        /// <param name="providerFactory">The <see cref="DbProviderFactory">provider factory</see> for underlying database operations.</param>
        /// <param name="connectionString">The database connection string.</param>
        /// <param name="tableName">The saga data table name.</param>
        /// <param name="messageTypeResolver">The <see cref="IMessageTypeResolver">resolver</see> used to resolve message <see cref="Type">types</see>.</param>
        /// <param name="serializerFactory">The <see cref="ISqlMessageSerializerFactory">factory</see> used to create new message serializers.</param>
        public SqlSagaStorageConfiguration(
            DbProviderFactory providerFactory,
            string connectionString,
            SqlIdentifier tableName,
            IMessageTypeResolver messageTypeResolver,
            ISqlMessageSerializerFactory serializerFactory)
        {
            Arg.NotNull(providerFactory, nameof(providerFactory));
            Arg.NotNullOrEmpty(connectionString, nameof(connectionString));
            Arg.NotNull(messageTypeResolver, nameof(messageTypeResolver));
            Arg.NotNull(serializerFactory, nameof(serializerFactory));

            ProviderFactory        = providerFactory;
            this.connectionString  = connectionString;
            this.serializerFactory = serializerFactory;
            TableName           = tableName;
            MessageTypeResolver = messageTypeResolver;
            Sql = new SqlBuilder(tableName);
        }