From eea970a648b2b6c20d3f292cae5a712d2a3f4a6f Mon Sep 17 00:00:00 2001 From: Laura Neto <12862535+lauraneto@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:01:48 +0200 Subject: [PATCH] Fix merge issues in DataTypeService --- src/Umbraco.Core/Services/DataTypeService.cs | 67 ++++++++------------ 1 file changed, 26 insertions(+), 41 deletions(-) diff --git a/src/Umbraco.Core/Services/DataTypeService.cs b/src/Umbraco.Core/Services/DataTypeService.cs index 4089a4c09f..315cd430ef 100644 --- a/src/Umbraco.Core/Services/DataTypeService.cs +++ b/src/Umbraco.Core/Services/DataTypeService.cs @@ -21,14 +21,12 @@ namespace Umbraco.Cms.Core.Services.Implement /// public class DataTypeService : RepositoryService, IDataTypeService { - private readonly IDataValueEditorFactory _dataValueEditorFactory; private readonly IDataTypeRepository _dataTypeRepository; private readonly IDataTypeContainerRepository _dataTypeContainerRepository; private readonly IContentTypeRepository _contentTypeRepository; private readonly IMediaTypeRepository _mediaTypeRepository; private readonly IMemberTypeRepository _memberTypeRepository; private readonly IAuditService _auditService; - private readonly IIOHelper _ioHelper; private readonly IDataTypeContainerService _dataTypeContainerService; private readonly IUserIdKeyResolver _userIdKeyResolver; private readonly Lazy _idKeyMap; @@ -38,22 +36,18 @@ namespace Umbraco.Cms.Core.Services.Implement ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory, IDataTypeRepository dataTypeRepository, - IDataValueEditorFactory dataValueEditorFactory, IAuditService auditService, IContentTypeRepository contentTypeRepository, IMediaTypeRepository mediaTypeRepository, IMemberTypeRepository memberTypeRepository, - IIOHelper ioHelper, Lazy idKeyMap) : base(provider, loggerFactory, eventMessagesFactory) { - _dataValueEditorFactory = dataValueEditorFactory; _dataTypeRepository = dataTypeRepository; _auditService = auditService; _contentTypeRepository = contentTypeRepository; _mediaTypeRepository = mediaTypeRepository; _memberTypeRepository = memberTypeRepository; - _ioHelper = ioHelper; _idKeyMap = idKeyMap; // resolve dependencies for obsolete methods through the static service provider, so they don't pollute the constructor signature @@ -62,7 +56,31 @@ namespace Umbraco.Cms.Core.Services.Implement _userIdKeyResolver = StaticServiceProvider.Instance.GetRequiredService(); } - [Obsolete("Use the non-obsolete constructor instead. Scheduled removal in v19.")] + [Obsolete("Use the non-obsolete constructor instead. Scheduled removal in v18.")] + public DataTypeService( + ICoreScopeProvider provider, + ILoggerFactory loggerFactory, + IEventMessagesFactory eventMessagesFactory, + IDataTypeRepository dataTypeRepository, + IAuditRepository auditRepository, + IContentTypeRepository contentTypeRepository, + IMediaTypeRepository mediaTypeRepository, + IMemberTypeRepository memberTypeRepository, + Lazy idKeyMap) + : this( + provider, + loggerFactory, + eventMessagesFactory, + dataTypeRepository, + StaticServiceProvider.Instance.GetRequiredService(), + contentTypeRepository, + mediaTypeRepository, + memberTypeRepository, + idKeyMap) + { + } + + [Obsolete("Use the non-obsolete constructor instead. Scheduled removal in v18.")] public DataTypeService( ICoreScopeProvider provider, ILoggerFactory loggerFactory, @@ -80,17 +98,15 @@ namespace Umbraco.Cms.Core.Services.Implement loggerFactory, eventMessagesFactory, dataTypeRepository, - dataValueEditorFactory, StaticServiceProvider.Instance.GetRequiredService(), contentTypeRepository, mediaTypeRepository, memberTypeRepository, - ioHelper, idKeyMap) { } - [Obsolete("Use the non-obsolete constructor instead. Scheduled removal in v19.")] + [Obsolete("Use the non-obsolete constructor instead. Scheduled removal in v18.")] public DataTypeService( ICoreScopeProvider provider, ILoggerFactory loggerFactory, @@ -109,12 +125,10 @@ namespace Umbraco.Cms.Core.Services.Implement loggerFactory, eventMessagesFactory, dataTypeRepository, - dataValueEditorFactory, auditService, contentTypeRepository, mediaTypeRepository, memberTypeRepository, - ioHelper, idKeyMap) { } @@ -289,7 +303,6 @@ namespace Umbraco.Cms.Core.Services.Implement { using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IDataType? dataType = _dataTypeRepository.Get(Query().Where(x => x.Name == name))?.FirstOrDefault(); - ConvertMissingEditorOfDataTypeToLabel(dataType); return Task.FromResult(dataType); } @@ -306,7 +319,6 @@ namespace Umbraco.Cms.Core.Services.Implement } IDataType[] dataTypes = _dataTypeRepository.Get(query).ToArray(); - ConvertMissingEditorsOfDataTypesToLabels(dataTypes); return Task.FromResult>(dataTypes); } @@ -350,7 +362,6 @@ namespace Umbraco.Cms.Core.Services.Implement { using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IDataType? dataType = _dataTypeRepository.Get(id); - ConvertMissingEditorOfDataTypeToLabel(dataType); return dataType; } @@ -360,7 +371,6 @@ namespace Umbraco.Cms.Core.Services.Implement { using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IDataType? dataType = GetDataTypeFromRepository(id); - ConvertMissingEditorOfDataTypeToLabel(dataType); return Task.FromResult(dataType); } @@ -380,7 +390,6 @@ namespace Umbraco.Cms.Core.Services.Implement using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IQuery query = Query().Where(x => x.EditorAlias == propertyEditorAlias); IEnumerable dataTypes = _dataTypeRepository.Get(query).ToArray(); - ConvertMissingEditorsOfDataTypesToLabels(dataTypes); return Task.FromResult(dataTypes); } @@ -391,7 +400,6 @@ namespace Umbraco.Cms.Core.Services.Implement using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IQuery query = Query().Where(x => propertyEditorAlias.Contains(x.EditorAlias)); IEnumerable dataTypes = _dataTypeRepository.Get(query).ToArray(); - ConvertMissingEditorsOfDataTypesToLabels(dataTypes); return Task.FromResult(dataTypes); } @@ -401,7 +409,6 @@ namespace Umbraco.Cms.Core.Services.Implement using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IQuery query = Query().Where(x => x.EditorUiAlias == editorUiAlias); IEnumerable dataTypes = _dataTypeRepository.Get(query).ToArray(); - ConvertMissingEditorsOfDataTypesToLabels(dataTypes); return Task.FromResult(dataTypes); } @@ -415,32 +422,10 @@ namespace Umbraco.Cms.Core.Services.Implement { using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true); IEnumerable dataTypes = _dataTypeRepository.GetMany(ids).ToArray(); - ConvertMissingEditorsOfDataTypesToLabels(dataTypes); return dataTypes; } - private void ConvertMissingEditorOfDataTypeToLabel(IDataType? dataType) - { - if (dataType == null) - { - return; - } - - ConvertMissingEditorsOfDataTypesToLabels([dataType]); - } - - private void ConvertMissingEditorsOfDataTypesToLabels(IEnumerable dataTypes) - { - // Any data types that don't have an associated editor are created of a specific type. - // We convert them to labels to make clear to the user why the data type cannot be used. - IEnumerable dataTypesWithMissingEditors = dataTypes.Where(x => x.Editor is MissingPropertyEditor); - foreach (IDataType dataType in dataTypesWithMissingEditors) - { - dataType.Editor = new LabelPropertyEditor(_dataValueEditorFactory, _ioHelper); - } - } - public Attempt?> Move(IDataType toMove, int parentId) { Guid? containerKey = null;