diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs index 905e2dc910..7e783efcef 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs @@ -1130,26 +1130,26 @@ namespace Umbraco.Core.Persistence.Repositories.Implement return EnsureUniqueNaming == false ? nodeName : base.EnsureUniqueNodeName(parentId, nodeName, id); } + private SqlTemplate SqlEnsureUniqueVariationNames => SqlContext.Templates.Get("Umbraco.Core.DomainRepository.EnsureUniqueVariationNames", tsql => tsql + .Select(x => x.Id, x => x.Name, x => x.LanguageId) + .From() + .InnerJoin() + .On(x => x.Id, x => x.VersionId) + .InnerJoin() + .On(x => x.NodeId, x => x.NodeId) + .Where(x => x.Current == SqlTemplate.Arg("current")) + .Where(x => x.NodeObjectType == SqlTemplate.Arg("nodeObjectType") && + x.ParentId == SqlTemplate.Arg("parentId") && + x.NodeId != SqlTemplate.Arg("id")) + .OrderBy(x => x.LanguageId)); + private void EnsureUniqueVariationNames(IContent content) { if (!EnsureUniqueNaming || content.CultureNames.Count == 0) return; //Get all culture names at the same level - var template = SqlContext.Templates.Get("Umbraco.Core.DocumentRepository.EnsureUniqueVariationNames", tsql => tsql - .Select(x => x.Id, x => x.Name, x => x.LanguageId) - .From() - .InnerJoin() - .On(x => x.Id, x => x.VersionId) - .InnerJoin() - .On(x => x.NodeId, x => x.NodeId) - .Where(x => x.Current == SqlTemplate.Arg("current")) - .Where(x => x.NodeObjectType == SqlTemplate.Arg("nodeObjectType") - && x.ParentId == SqlTemplate.Arg("parentId") - && x.NodeId != SqlTemplate.Arg("id")) - .OrderBy(x => x.LanguageId)); - - var sql = template.Sql(true, NodeObjectTypeId, content.ParentId, content.Id); + var sql = SqlEnsureUniqueVariationNames.Sql(true, NodeObjectTypeId, content.ParentId, content.Id); var names = Database.Fetch(sql) .GroupBy(x => x.LanguageId) .ToDictionary(x => x.Key, x => x);