Skip to main content

Update Place

POST 

/api/places/updateplace

Tier: Public — stable, supported for third-party integration.

Full-replace update of a place's basic fields, template, extended properties, and hierarchy position.

Full-replace semantics: Name, Description, ParentPlaceId, PlaceCode, ExternalRef, and Gln are explicitly overwritten; PlaceType, Channel, and CurrentItemCount are overwritten via AutoMapper convention mapping (verified live — all three round-trip). Fields omitted from the request are nulled/zeroed on the entity, not left unchanged. A template change re-syncs the place's extended properties to the new template's schema.

Changing ParentPlaceId triggers a tenant-wide nested-set rebuild (can take several seconds on a large tenant) and raises a hierarchy-updated event that asynchronously refreshes visibility caches for place-filtered users. Setting a place's ParentPlaceId to itself or to any of its own descendants is rejected (InvalidOperation) — walking the proposed parent chain upward, mirroring the Category hierarchy's cycle check. An unknown ParentPlaceId is not otherwise existence-checked and succeeds validation-wise the same way creation does (see PlaceController.CreatePlace(...)).

Request

Responses

The updated place, freshly re-fetched. See Places.PlaceDetailDto.