/// <summary> /// Gets the most recent snapshot for the specified <paramref name="streamId"/> and <paramref name="maximumVersion"/>. /// </summary> /// <param name="type">The snapshot type.</param> /// <param name="streamId">The unique stream identifier.</param> /// <param name="maximumVersion">The maximum snapshot version.</param> public Snapshot GetSnapshot(Type type, Guid streamId, Int32 maximumVersion) { Verify.NotNull(type, nameof(type)); Verify.NotDisposed(this, disposed); using (var command = dialect.CreateCommand(dialect.GetSnapshot)) { Log.Trace("Getting stream {0} snapshot with version less than or equal to {1}", streamId, maximumVersion); command.Parameters.Add(dialect.CreateStreamIdParameter(streamId)); command.Parameters.Add(dialect.CreateVersionParameter(maximumVersion)); return(dialect.QuerySingle(command, record => CreateSnapshot(type, record))); } }
/// <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); } }