From fd26f9835646b3310b7f2e2a2243c03407109c2e Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 22 Oct 2015 15:10:44 +0200 Subject: [PATCH] fixes template mapping issue when saving content types --- .../Models/Mapping/ContentTypeModelMapper.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs index 27aaf17599..626da45caa 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs @@ -53,13 +53,15 @@ namespace Umbraco.Web.Models.Mapping //do the base mapping .MapBaseContentTypeSaveToEntity(applicationContext) .ConstructUsing((source) => new ContentType(source.ParentId)) - .ForMember( - dto => dto.AllowedTemplates, - expression => expression.ResolveUsing(basic => basic.AllowedTemplates.Where(x => x != null) - .Select(s => applicationContext.Services.FileService.GetTemplate(s)))) + .ForMember(source => source.AllowedTemplates, expression => expression.Ignore()) .ForMember(dto => dto.DefaultTemplate, expression => expression.Ignore()) .AfterMap((source, dest) => { + dest.AllowedTemplates = source.AllowedTemplates + .Where(x => x != null) + .Select(s => applicationContext.Services.FileService.GetTemplate(s)) + .ToArray(); + if (source.DefaultTemplate != null) dest.SetDefaultTemplate(applicationContext.Services.FileService.GetTemplate(source.DefaultTemplate)); @@ -115,7 +117,7 @@ namespace Umbraco.Web.Models.Mapping .AfterMap((source, dest) => { //sync templates - dest.AllowedTemplates = source.AllowedTemplates.Select(Mapper.Map); + dest.AllowedTemplates = source.AllowedTemplates.Select(Mapper.Map).ToArray(); if (source.DefaultTemplate != null) dest.DefaultTemplate = Mapper.Map(source.DefaultTemplate); @@ -182,7 +184,7 @@ namespace Umbraco.Web.Models.Mapping if (destAllowedTemplateAliases.SequenceEqual(source.AllowedTemplates) == false) { var templates = applicationContext.Services.FileService.GetTemplates(source.AllowedTemplates.ToArray()); - dest.AllowedTemplates = source.AllowedTemplates.Select(x => Mapper.Map(templates.Single(t => t.Alias == x))); + dest.AllowedTemplates = source.AllowedTemplates.Select(x => Mapper.Map(templates.Single(t => t.Alias == x))).ToArray(); } if (source.DefaultTemplate.IsNullOrWhiteSpace() == false)