From 7fa71a2f4eee351ffbd6a675f4a5dedddacb7a27 Mon Sep 17 00:00:00 2001 From: Stephan Date: Wed, 3 Apr 2019 10:39:59 +0200 Subject: [PATCH] Fix mappers --- .../CompositionExtensions/WebMappingProfiles.cs | 1 + .../Models/Mapping/ContentVariantMapper.cs | 4 ++-- .../Models/Mapping/MemberMapDefinition.cs | 14 +++++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web/Composing/CompositionExtensions/WebMappingProfiles.cs b/src/Umbraco.Web/Composing/CompositionExtensions/WebMappingProfiles.cs index 55790a695a..2d32517001 100644 --- a/src/Umbraco.Web/Composing/CompositionExtensions/WebMappingProfiles.cs +++ b/src/Umbraco.Web/Composing/CompositionExtensions/WebMappingProfiles.cs @@ -30,6 +30,7 @@ namespace Umbraco.Web.Composing.CompositionExtensions .Add(); composition.Register(); + composition.Register(); return composition; } diff --git a/src/Umbraco.Web/Models/Mapping/ContentVariantMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentVariantMapper.cs index aabf1a4e60..4c826ac8b0 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentVariantMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentVariantMapper.cs @@ -32,7 +32,7 @@ namespace Umbraco.Web.Models.Mapping var allLanguages = _localizationService.GetAllLanguages().OrderBy(x => x.Id).ToList(); if (allLanguages.Count == 0) return Enumerable.Empty(); //this should never happen - var langs = context.Mapper.Map, IEnumerable>(allLanguages, null, context).ToList(); + var langs = context.Mapper.Map>(allLanguages, context).ToList(); //create a variant for each language, then we'll populate the values var variants = langs.Select(x => @@ -40,7 +40,7 @@ namespace Umbraco.Web.Models.Mapping //We need to set the culture in the mapping context since this is needed to ensure that the correct property values //are resolved during the mapping context.SetCulture(x.IsoCode); - return context.Mapper.Map(source, null, context); + return context.Mapper.Map(source, context); }).ToList(); for (int i = 0; i < langs.Count; i++) diff --git a/src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs b/src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs index 9dbcb6686b..b59f3ca120 100644 --- a/src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs +++ b/src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Web.Security; using Umbraco.Core; using Umbraco.Core.Mapping; @@ -20,14 +21,14 @@ namespace Umbraco.Web.Models.Mapping { private readonly CommonMapper _commonMapper; private readonly IMemberTypeService _memberTypeService; - private readonly TabsAndPropertiesMapper _tabsAndPropertiesMapper; + private readonly MemberTabsAndPropertiesMapper _tabsAndPropertiesMapper; - public MemberMapDefinition(CommonMapper commonMapper, IMemberTypeService memberTypeService, ILocalizedTextService localizedTextService) + public MemberMapDefinition(CommonMapper commonMapper, IMemberTypeService memberTypeService, MemberTabsAndPropertiesMapper tabsAndPropertiesMapper) { _commonMapper = commonMapper; _memberTypeService = memberTypeService; - _tabsAndPropertiesMapper = new TabsAndPropertiesMapper(localizedTextService); + _tabsAndPropertiesMapper = tabsAndPropertiesMapper; } public void DefineMaps(UmbracoMapper mapper) @@ -38,6 +39,7 @@ namespace Umbraco.Web.Models.Mapping mapper.Define((source, context) => new MemberBasic(), Map); mapper.Define((source, context) => new MemberBasic(), Map); mapper.Define((source, context) => new MemberGroupDisplay(), Map); + mapper.Define((source, context) => new ContentPropertyCollectionDto(), Map); } private void Map(MembershipUser source, MemberDisplay target, MapperContext context) @@ -144,6 +146,12 @@ namespace Umbraco.Web.Models.Mapping target.Udi = Udi.Create(Constants.UdiEntityType.MemberGroup, source.Key); } + // Umbraco.Code.MapAll + private static void Map(IMember source, ContentPropertyCollectionDto target, MapperContext context) + { + target.Properties = source.Properties.Select(context.Mapper.Map); + } + private MembershipScenario GetMembershipScenario() { var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider();