Add explicit write transactions and deterministic ordering tests

This commit is contained in:
2026-02-07 01:16:07 +01:00
parent 0d60108036
commit 35d842d6ee
4 changed files with 26 additions and 25 deletions

View File

@@ -67,6 +67,8 @@ internal sealed class SuggestionWorkflowService(AppDbContext db, IHttpClientFact
MaxPlayers = request.MaxPlayers
};
await using var tx = await db.Database.BeginTransactionAsync();
db.Suggestions.Add(suggestion);
if (usingJoker)
@@ -76,6 +78,7 @@ internal sealed class SuggestionWorkflowService(AppDbContext db, IHttpClientFact
}
await db.SaveChangesAsync();
await tx.CommitAsync();
return Results.Created($"/api/suggestions/{suggestion.Id}", new { suggestion.Id });
}
@@ -95,6 +98,8 @@ internal sealed class SuggestionWorkflowService(AppDbContext db, IHttpClientFact
if (suggestion == null)
return Results.NotFound(new { error = "Suggestion not found." });
await using var tx = await db.Database.BeginTransactionAsync();
await db.Suggestions
.Where(s => s.ParentSuggestionId == suggestion.Id)
.ExecuteUpdateAsync(s => s.SetProperty(x => x.ParentSuggestionId, (int?)null));
@@ -103,6 +108,7 @@ internal sealed class SuggestionWorkflowService(AppDbContext db, IHttpClientFact
db.Suggestions.Remove(suggestion);
await db.SaveChangesAsync();
await tx.CommitAsync();
return Results.NoContent();
}