diff --git a/src/Umbraco.Core/Constants-SqlTemplates.cs b/src/Umbraco.Core/Constants-SqlTemplates.cs index 549dae5bd6..ad5b326035 100644 --- a/src/Umbraco.Core/Constants-SqlTemplates.cs +++ b/src/Umbraco.Core/Constants-SqlTemplates.cs @@ -10,6 +10,7 @@ public static partial class Constants public const string GetVersion = "Umbraco.Core.VersionableRepository.GetVersion"; public const string GetVersions = "Umbraco.Core.VersionableRepository.GetVersions"; public const string EnsureUniqueNodeName = "Umbraco.Core.VersionableRepository.EnsureUniqueNodeName"; + public const string SortOrderExists = "Umbraco.Core.VersionableRepository.SortOrderExists"; public const string GetSortOrder = "Umbraco.Core.VersionableRepository.GetSortOrder"; public const string GetParentNode = "Umbraco.Core.VersionableRepository.GetParentNode"; public const string GetReservedId = "Umbraco.Core.VersionableRepository.GetReservedId"; diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs index ce14f1ec1e..de247a6120 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs @@ -1013,6 +1013,21 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement return SimilarNodeName.GetUniqueName(names, id, nodeName); } + protected virtual bool SortorderExists(int parentId, int sortOrder) + { + SqlTemplate? template = SqlContext.Templates.Get(Constants.SqlTemplates.VersionableRepository.SortOrderExists, tsql => tsql + .Select("sortOrder") + .From() + .Where(x => x.NodeObjectType == SqlTemplate.Arg("nodeObjectType") && + x.ParentId == SqlTemplate.Arg("parentId") && + x.SortOrder == SqlTemplate.Arg("sortOrder"))); + + Sql sql = template.Sql(NodeObjectTypeId, parentId, sortOrder); + var result = Database.ExecuteScalar(sql); + + return result != null; + } + protected virtual int GetNewChildSortOrder(int parentId, int first) { SqlTemplate? template = SqlContext.Templates.Get(Constants.SqlTemplates.VersionableRepository.GetSortOrder, tsql => tsql diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs index 5c7488401f..3951ffba69 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs @@ -900,8 +900,9 @@ public class DocumentRepository : ContentRepositoryBase