Fix mappers

This commit is contained in:
Stephan
2019-04-03 10:39:59 +02:00
parent 7a6884d208
commit 7fa71a2f4e
3 changed files with 14 additions and 5 deletions

View File

@@ -30,6 +30,7 @@ namespace Umbraco.Web.Composing.CompositionExtensions
.Add<LanguageMapDefinition>();
composition.Register<CommonMapper>();
composition.Register<MemberTabsAndPropertiesMapper>();
return composition;
}

View File

@@ -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<ContentVariantDisplay>(); //this should never happen
var langs = context.Mapper.Map<IEnumerable<ILanguage>, IEnumerable<Language>>(allLanguages, null, context).ToList();
var langs = context.Mapper.Map<IEnumerable<Language>>(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<IContent, ContentVariantDisplay>(source, null, context);
return context.Mapper.Map<ContentVariantDisplay>(source, context);
}).ToList();
for (int i = 0; i < langs.Count; i++)

View File

@@ -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<IMember> _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<IMember>(localizedTextService);
_tabsAndPropertiesMapper = tabsAndPropertiesMapper;
}
public void DefineMaps(UmbracoMapper mapper)
@@ -38,6 +39,7 @@ namespace Umbraco.Web.Models.Mapping
mapper.Define<IMember, MemberBasic>((source, context) => new MemberBasic(), Map);
mapper.Define<MembershipUser, MemberBasic>((source, context) => new MemberBasic(), Map);
mapper.Define<IMemberGroup, MemberGroupDisplay>((source, context) => new MemberGroupDisplay(), Map);
mapper.Define<IMember, ContentPropertyCollectionDto>((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<ContentPropertyDto>);
}
private MembershipScenario GetMembershipScenario()
{
var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider();