Distinguish between default zero and intentional zero sort order for new documents (#17517)
* Distinguish between default value and initial zero * Update special value comment documentation * Redid solution with dirty/new entity tracking * rework copy branch sortorder fix * Change == false to is false --------- Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
This commit is contained in:
committed by
nikolajlauridsen
parent
ec8e10f406
commit
9febbc7db1
@@ -2760,6 +2760,9 @@ public class ContentService : RepositoryService, IContentService
|
||||
descendantCopy.CreatorId = userId;
|
||||
descendantCopy.WriterId = userId;
|
||||
|
||||
// since the repository relies on the dirty state to figure out whether it needs to update the sort order, we mark it dirty here
|
||||
descendantCopy.SortOrder = descendantCopy.SortOrder;
|
||||
|
||||
// save and flush (see above)
|
||||
_documentRepository.Save(descendantCopy);
|
||||
|
||||
|
||||
@@ -900,9 +900,10 @@ public class DocumentRepository : ContentRepositoryBase<int, IContent, DocumentR
|
||||
NodeDto parent = GetParentNodeDto(entity.ParentId);
|
||||
var level = parent.Level + 1;
|
||||
|
||||
var sortOrderExists = SortorderExists(entity.ParentId, entity.SortOrder);
|
||||
var calculateSortOrder = (entity is { HasIdentity: false, SortOrder: 0 } && entity.IsPropertyDirty(nameof(entity.SortOrder)) is false) // SortOrder was not updated from it's default value
|
||||
|| SortorderExists(entity.ParentId, entity.SortOrder);
|
||||
// if the sortorder of the entity already exists get a new one, else use the sortOrder of the entity
|
||||
var sortOrder = sortOrderExists ? GetNewChildSortOrder(entity.ParentId, 0) : entity.SortOrder;
|
||||
var sortOrder = calculateSortOrder ? GetNewChildSortOrder(entity.ParentId, 0) : entity.SortOrder;
|
||||
|
||||
// persist the node dto
|
||||
NodeDto nodeDto = dto.ContentDto.NodeDto;
|
||||
|
||||
Reference in New Issue
Block a user