mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-02 06:13:23 +00:00
Two review findings on the additive PATCH path: - AddTechniciansAsync can rename via CompanyFields.Name and write NormalizedName against the unique index, but the save had no guard. A colliding rename surfaced as an unhandled 500 from the PATCH action instead of a stable client conflict. Pre-check the normalized name against other live companies and throw VendorRosterDuplicateNameException, with a scoped catch around the save for the race where a competing rename commits in between. The controller maps it to a 409 alongside the existing concurrency conflict. - Empty-payload validation only rejected a null CompanyFields, so an all-blank CompanyFields object was forwarded as a company update, bumping RowVersion and rewriting every technician's LastModificationTime without changing any company data. Blank fields now collapse to no company change, and a request with neither technicians nor a real company value fails validation. |
||
|---|---|---|
| .. | ||
| AccountController.cs | ||
| AssetController.cs | ||
| AuthenticationController.cs | ||
| CalendarController.cs | ||
| CommonController.cs | ||
| ContactController.cs | ||
| DashboardController.cs | ||
| DispatchController.cs | ||
| DispatchPublicController.cs | ||
| DropdownOptionsController.cs | ||
| EmployeeController.cs | ||
| FollowUpController.cs | ||
| LocationController.cs | ||
| PMScheduleController.cs | ||
| QuotesController.cs | ||
| SettingsController.cs | ||
| SyncController.cs | ||
| TaskListTemplateController.cs | ||
| UpliftController.cs | ||
| UserController.cs | ||
| VendorCompanyRosterController.cs | ||
| VendorController.cs | ||
| VendorOperationsController.cs | ||
| VendorPortalController.cs | ||
| WorkOrderBoardController.cs | ||
| WorkOrderCompletionController.cs | ||
| WorkOrderController.cs | ||
| WorkOrderDetailController.cs | ||
| WorkOrderDispatchController.cs | ||
| WorkOrderIngestController.cs | ||
| WorkOrderJobsController.cs | ||
| WorkOrderMediaController.cs | ||
| WorkOrderOpsController.cs | ||
| WorkOrderReconciliationController.cs | ||
| WorkOrderWebhookController.cs | ||