mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-02 10:53:23 +00:00
UpdateWorkOrderAsync loaded the work order, applied the shared schedule side effects (RescheduleCount, OriginalDate/OriginalWeek, lifecycle, IsAddOn) and saved with no gate, transaction or row lock, so a concurrent reschedule could interleave with the read-modify-write. The read, the mutation, the save and the audit entry now run through IWorkOrderDataService.ExecuteWorkOrderMutationAsync, which uses the shared WorkOrderMutationLock: the per-work-order in-process gate, a transaction, and an UPDLOCK on the work order row on SQL Server. A reschedule committed by another holder of the lock is read before the edit applies its own date and increments RescheduleCount. Adds a regression test that holds the gate, commits a reschedule, and asserts the edit waits and then builds on the committed schedule. |
||
|---|---|---|
| .. | ||
| DependencyInjection | ||
| Dto | ||
| Exceptions | ||
| Helpers | ||
| Implementation | ||
| Interfaces | ||
| Models | ||
| Properties | ||
| SeaHaven.DataServices.csproj | ||