fix(uplifts): return stored evidence after a concurrent create

Map the saved request from the evidence-file lookup, and teach the shared-dispatch
conflict test to return that lookup so a winning insert still produces a response.

Co-authored-by: Arthur Bassi <bassi-arthurr@users.noreply.github.com>
This commit is contained in:
Cursor Agent 2026-10-01 14:58:51 +00:00
parent b11b66538a
commit 1daac954a3
No known key found for this signature in database
2 changed files with 6 additions and 1 deletions

View file

@ -56,6 +56,10 @@ public sealed class WorkOrderUpliftServiceConflictTests
.ReturnsAsync(0m);
upliftData.Setup(x => x.StageAsync(It.IsAny<DispatchUpliftRequest>(), It.IsAny<CancellationToken>()))
.Returns(Task.CompletedTask);
upliftData.Setup(x => x.GetEvidenceFilesAsync(
It.IsAny<IReadOnlyCollection<int>>(),
It.IsAny<CancellationToken>()))
.ReturnsAsync(new Dictionary<int, IReadOnlyList<UpliftEvidenceFileData>>());
upliftData.Setup(x => x.SaveChangesAsync(It.IsAny<CancellationToken>()))
.Returns(async () =>
{

View file

@ -469,7 +469,8 @@ namespace SeaHaven.Services.Implementation
Dispatch dispatch,
CancellationToken cancellationToken)
{
var files = await _upliftData.GetEvidenceFilesAsync(new[] { request.Id }, cancellationToken);
var files = await _upliftData.GetEvidenceFilesAsync(new[] { request.Id }, cancellationToken)
?? new Dictionary<int, IReadOnlyList<UpliftEvidenceFileData>>();
if (!files.TryGetValue(request.Id, out var attachments))
attachments = Array.Empty<UpliftEvidenceFileData>();