Allow shards to be soft-deleted (and thus replaced in an artifact)
- Add Marten's
ISoftDeletedtoShardInfoBase. - Add a
*Deletedevent to each shard kind. - Reimplement each shard kind's projection using an explicit aggregation and soft-delete the shard when a
*Deletedevent is encountered. - Take the
*Deletedevents into account in theArtifactDetailprojection. - Implement
UpsertinArtifactServicethat issues the*Deleteevents when a shard is removed from an existing artifact. - Add an
ArtifactEditendpoint (patch like all the others) that callsArtifactService.Upsert. - Add buttons to the UI.
Edited by Adam Štěpánek