From 0600df4211a03b17effa38e694d4120132237230 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Fri, 14 Nov 2025 17:09:46 +0100 Subject: [PATCH] Fix `EntityContainer.GetUdi()` for member type containers (#20840) Fix EntityContainer.GetUdi() for member type containers --- src/Umbraco.Core/Extensions/UdiGetterExtensions.cs | 8 ++++++-- src/Umbraco.Core/Models/EntityContainer.cs | 4 ++-- .../Umbraco.Core/Extensions/UdiGetterExtensionsTests.cs | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Extensions/UdiGetterExtensions.cs b/src/Umbraco.Core/Extensions/UdiGetterExtensions.cs index a5adc0de2a..763dde8410 100644 --- a/src/Umbraco.Core/Extensions/UdiGetterExtensions.cs +++ b/src/Umbraco.Core/Extensions/UdiGetterExtensions.cs @@ -64,6 +64,10 @@ public static class UdiGetterExtensions { entityType = Constants.UdiEntityType.DataTypeContainer; } + else if (entity.ContainedObjectType == Constants.ObjectTypes.DocumentBlueprint) + { + entityType = Constants.UdiEntityType.DocumentBlueprintContainer; + } else if (entity.ContainedObjectType == Constants.ObjectTypes.DocumentType) { entityType = Constants.UdiEntityType.DocumentTypeContainer; @@ -72,9 +76,9 @@ public static class UdiGetterExtensions { entityType = Constants.UdiEntityType.MediaTypeContainer; } - else if (entity.ContainedObjectType == Constants.ObjectTypes.DocumentBlueprint) + else if (entity.ContainedObjectType == Constants.ObjectTypes.MemberType) { - entityType = Constants.UdiEntityType.DocumentBlueprintContainer; + entityType = Constants.UdiEntityType.MemberTypeContainer; } else { diff --git a/src/Umbraco.Core/Models/EntityContainer.cs b/src/Umbraco.Core/Models/EntityContainer.cs index b6770913a6..02cefdc795 100644 --- a/src/Umbraco.Core/Models/EntityContainer.cs +++ b/src/Umbraco.Core/Models/EntityContainer.cs @@ -10,10 +10,10 @@ public sealed class EntityContainer : TreeEntityBase, IUmbracoEntity private static readonly Dictionary ObjectTypeMap = new() { { Constants.ObjectTypes.DataType, Constants.ObjectTypes.DataTypeContainer }, + { Constants.ObjectTypes.DocumentBlueprint, Constants.ObjectTypes.DocumentBlueprintContainer }, { Constants.ObjectTypes.DocumentType, Constants.ObjectTypes.DocumentTypeContainer }, { Constants.ObjectTypes.MediaType, Constants.ObjectTypes.MediaTypeContainer }, { Constants.ObjectTypes.MemberType, Constants.ObjectTypes.MemberTypeContainer }, - { Constants.ObjectTypes.DocumentBlueprint, Constants.ObjectTypes.DocumentBlueprintContainer }, }; /// @@ -83,7 +83,7 @@ public sealed class EntityContainer : TreeEntityBase, IUmbracoEntity public static Guid GetContainedObjectType(Guid containerObjectType) { Guid contained = ObjectTypeMap.FirstOrDefault(x => x.Value == containerObjectType).Key; - if (contained == null) + if (contained == default) { throw new ArgumentException("Not a container object type.", nameof(containerObjectType)); } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UdiGetterExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UdiGetterExtensionsTests.cs index 476fefec66..0dd3568175 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UdiGetterExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UdiGetterExtensionsTests.cs @@ -16,9 +16,10 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Extensions; public class UdiGetterExtensionsTests { [TestCase(Constants.ObjectTypes.Strings.DataType, "6ad82c70-685c-4e04-9b36-d81bd779d16f", "umb://data-type-container/6ad82c70685c4e049b36d81bd779d16f")] + [TestCase(Constants.ObjectTypes.Strings.DocumentBlueprint, "6ad82c70-685c-4e04-9b36-d81bd779d16f", "umb://document-blueprint-container/6ad82c70685c4e049b36d81bd779d16f")] [TestCase(Constants.ObjectTypes.Strings.DocumentType, "6ad82c70-685c-4e04-9b36-d81bd779d16f", "umb://document-type-container/6ad82c70685c4e049b36d81bd779d16f")] [TestCase(Constants.ObjectTypes.Strings.MediaType, "6ad82c70-685c-4e04-9b36-d81bd779d16f", "umb://media-type-container/6ad82c70685c4e049b36d81bd779d16f")] - [TestCase(Constants.ObjectTypes.Strings.DocumentBlueprint, "6ad82c70-685c-4e04-9b36-d81bd779d16f", "umb://document-blueprint-container/6ad82c70685c4e049b36d81bd779d16f")] + [TestCase(Constants.ObjectTypes.Strings.MemberType, "6ad82c70-685c-4e04-9b36-d81bd779d16f", "umb://member-type-container/6ad82c70685c4e049b36d81bd779d16f")] public void GetUdiForEntityContainer(Guid containedObjectType, Guid key, string expected) { EntityContainer entity = new EntityContainer(containedObjectType)