mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-02 22:43:31 +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. |
||
|---|---|---|
| .. | ||
| .config | ||
| Controllers | ||
| DTOs | ||
| Filters | ||
| Helper | ||
| HostedServices | ||
| Infrastructure | ||
| Middleware | ||
| Models | ||
| Options | ||
| Properties | ||
| wwwroot | ||
| Api.SeaHavenIndustries.csproj | ||
| Api.SeaHavenIndustries.http | ||
| appsettings.Development.json | ||
| appsettings.json | ||
| appsettings.Production.json | ||
| aws-beanstalk-tools-defaults.json | ||
| db.txt | ||
| Program.cs | ||