Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of <see cref="SqlSnapshotStore"/> with a custom <see cref="ISnapshotStoreDialect"/>.
        /// </summary>
        /// <param name="serializer">The <see cref="ISerializeObjects"/> used to store binary data.</param>
        /// <param name="settings">The snapshot store settings.</param>
        /// <param name="dialect">The database dialect associated with this <see cref="SqlSnapshotStore"/>.</param>
        internal SqlSnapshotStore(ISnapshotStoreDialect dialect, ISerializeObjects serializer, IStoreSnapshotSettings settings)
        {
            Verify.NotNull(serializer, nameof(serializer));
            Verify.NotNull(settings, nameof(settings));
            Verify.NotNull(dialect, nameof(dialect));

            this.dialect         = dialect;
            this.serializer      = serializer;
            this.useAsyncWrite   = settings.Async;
            this.replaceExisting = settings.ReplaceExisting;
            this.buffer          = settings.Async ? CreateBuffer(settings, dialect) : null;

            Initialize();
        }
        /// <summary>
        /// Initializes a new instance of <see cref="SqlSnapshotStore"/> with a custom <see cref="ISnapshotStoreDialect"/>.
        /// </summary>
        /// <param name="serializer">The <see cref="ISerializeObjects"/> used to store binary data.</param>
        /// <param name="settings">The snapshot store settings.</param>
        /// <param name="dialect">The database dialect associated with this <see cref="SqlSnapshotStore"/>.</param>
        internal SqlSnapshotStore(ISnapshotStoreDialect dialect, ISerializeObjects serializer, IStoreSnapshotSettings settings)
        {
            Verify.NotNull(serializer, nameof(serializer));
            Verify.NotNull(settings, nameof(settings));
            Verify.NotNull(dialect, nameof(dialect));

            this.dialect = dialect;
            this.serializer = serializer;
            this.useAsyncWrite = settings.Async;
            this.replaceExisting = settings.ReplaceExisting;
            this.buffer = settings.Async ? CreateBuffer(settings, dialect) : null;

            Initialize();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a <see cref="DataTable"/> based on the required insert/update command parameters.
        /// </summary>
        private static DbBatchOperation CreateBuffer(IStoreSnapshotSettings settings, ISnapshotStoreDialect dialect)
        {
            using (var command = dialect.CreateCommand(settings.ReplaceExisting ? dialect.ReplaceSnapshot : dialect.InsertSnapshot))
            {
                command.Parameters.Add(dialect.CreateStreamIdParameter(default(Guid)));
                command.Parameters.Add(dialect.CreateVersionParameter(default(Int32)));
                command.Parameters.Add(dialect.CreateStateParameter(default(Byte[])));

                return(new DbBatchOperation(dialect, command, settings.BatchSize, settings.FlushInterval));
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of <see cref="SqlSnapshotStore"/>.
 /// </summary>
 /// <param name="dialect">The database dialect associated with this <see cref="SqlSnapshotStore"/>.</param>
 /// <param name="serializer">The <see cref="ISerializeObjects"/> used to store binary data.</param>
 public SqlSnapshotStore(ISnapshotStoreDialect dialect, ISerializeObjects serializer)
     : this(dialect, serializer, Settings.SnapshotStore)
 {
 }
 /// <summary>
 /// Initializes a new instance of <see cref="SqlSnapshotStore"/>.
 /// </summary>
 /// <param name="dialect">The database dialect associated with this <see cref="SqlSnapshotStore"/>.</param>
 /// <param name="serializer">The <see cref="ISerializeObjects"/> used to store binary data.</param>
 public SqlSnapshotStore(ISnapshotStoreDialect dialect, ISerializeObjects serializer)
     : this(dialect, serializer, Settings.SnapshotStore)
 {
 }
        /// <summary>
        /// Creates a <see cref="DataTable"/> based on the required insert/update command parameters.
        /// </summary>
        private static DbBatchOperation CreateBuffer(IStoreSnapshotSettings settings, ISnapshotStoreDialect dialect)
        {
            using (var command = dialect.CreateCommand(settings.ReplaceExisting ? dialect.ReplaceSnapshot : dialect.InsertSnapshot))
            {
                command.Parameters.Add(dialect.CreateStreamIdParameter(default(Guid)));
                command.Parameters.Add(dialect.CreateVersionParameter(default(Int32)));
                command.Parameters.Add(dialect.CreateStateParameter(default(Byte[])));

                return new DbBatchOperation(dialect, command, settings.BatchSize, settings.FlushInterval);
            }
        }