feat(processing): persist safe atomic operation history

This commit is contained in:
cesnimda
2026-10-28 15:54:37 +01:00
parent 5f261083f3
commit 1f87301ee9
17 changed files with 501 additions and 32 deletions
@@ -23,8 +23,8 @@ public sealed partial class ProfileCvController
cancellationToken.ThrowIfCancellationRequested();
if (context is null) return;
var lease = context.Lease;
var updated = await _db.UserOperations.Where(o => o.Id == lease.OperationId && o.LeaseToken == lease.LeaseToken && o.Status == OperationStatuses.Running && o.CancellationRequestedAtUtc == null && o.LeaseExpiresAtUtc > DateTime.UtcNow)
.ExecuteUpdateAsync(s => s.SetProperty(o => o.ProgressStage, stage), cancellationToken);
var updated = await new UserOperationStore(_db, TimeProvider.System)
.ReportStageAsync(lease.OperationId, lease.LeaseToken, stage, cancellationToken);
if (updated != 1) throw new OperationCanceledException("The document processing lease is no longer active.", cancellationToken);
}
await Stage("cv_validating_file");