/// <summary> /// Adds a new snapshot to the snapshot store, keeping all existing snapshots. /// </summary> /// <param name="snapshot">The snapshot to append to the snapshot store.</param> private void InsertSnapshot(Snapshot snapshot) { var state = serializer.Serialize(snapshot.State); using (var command = dialect.CreateCommand(dialect.InsertSnapshot)) { Log.Trace("Inserting stream {0} snapshot for version {1}", snapshot.StreamId, snapshot.Version); command.Parameters.Add(dialect.CreateStreamIdParameter(snapshot.StreamId)); command.Parameters.Add(dialect.CreateVersionParameter(snapshot.Version)); command.Parameters.Add(dialect.CreateStateParameter(state)); dialect.ExecuteNonQuery(command); } }
/// <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)); } }
/// <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); } }