Search/AdvisoryAI and DAL conversion to EF finishes up. Preparation for microservices consolidation.
This commit is contained in:
@@ -29,13 +29,16 @@ public sealed class PostgresTimeTravelRepository : ITimeTravelRepository
|
||||
private readonly NpgsqlDataSource _dataSource;
|
||||
private readonly ISnapshotRepository _snapshotRepository;
|
||||
private readonly JsonSerializerOptions _jsonOptions;
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
public PostgresTimeTravelRepository(
|
||||
NpgsqlDataSource dataSource,
|
||||
ISnapshotRepository snapshotRepository)
|
||||
ISnapshotRepository snapshotRepository,
|
||||
TimeProvider? timeProvider = null)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
_snapshotRepository = snapshotRepository;
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
_jsonOptions = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
@@ -49,13 +52,15 @@ public sealed class PostgresTimeTravelRepository : ITimeTravelRepository
|
||||
{
|
||||
const string sql = """
|
||||
SELECT COALESCE(MAX(sequence_number), 0) as seq,
|
||||
COALESCE(MAX(recorded_at), NOW()) as ts
|
||||
COALESCE(MAX(recorded_at), @now) as ts
|
||||
FROM ledger_events
|
||||
WHERE tenant_id = @tenantId
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
await using var cmd = _dataSource.CreateCommand(sql);
|
||||
cmd.Parameters.AddWithValue("tenantId", tenantId);
|
||||
cmd.Parameters.AddWithValue("now", now);
|
||||
|
||||
await using var reader = await cmd.ExecuteReaderAsync(ct);
|
||||
await reader.ReadAsync(ct);
|
||||
@@ -793,7 +798,7 @@ public sealed class PostgresTimeTravelRepository : ITimeTravelRepository
|
||||
TimeSpan threshold,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
var checkedAt = DateTimeOffset.UtcNow;
|
||||
var checkedAt = _timeProvider.GetUtcNow();
|
||||
|
||||
const string sql = """
|
||||
SELECT
|
||||
|
||||
Reference in New Issue
Block a user