using Microsoft.EntityFrameworkCore; using System.Globalization; namespace StellaOps.Provcache.Postgres; public sealed partial class PostgresProvcacheRepository { /// public async Task DeleteByFeedEpochOlderThanAsync(string feedEpoch, CancellationToken cancellationToken = default) { var deleted = await _context.ProvcacheItems .Where(e => string.Compare(e.FeedEpoch, feedEpoch) < 0) .ExecuteDeleteAsync(cancellationToken) .ConfigureAwait(false); if (deleted > 0) { await LogRevocationAsync("feed", feedEpoch, "feed-update", deleted, cancellationToken) .ConfigureAwait(false); } return deleted; } /// public async Task DeleteExpiredAsync(DateTimeOffset asOf, CancellationToken cancellationToken = default) { var deleted = await _context.ProvcacheItems .Where(e => e.ExpiresAt <= asOf) .ExecuteDeleteAsync(cancellationToken) .ConfigureAwait(false); if (deleted > 0) { await LogRevocationAsync( "expired", asOf.ToString("O", CultureInfo.InvariantCulture), "ttl-expiry", deleted, cancellationToken) .ConfigureAwait(false); } return deleted; } }