From e8abe4af2d8f9e9ae1bfb30bcd2eda780341ffac Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Mon, 8 Jun 2015 18:17:10 +0200 Subject: [PATCH] map generic properties the right way --- .../Models/Mapping/ContentTypeModelMapper.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs index 07f5340822..ac88f6b111 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs @@ -36,7 +36,6 @@ namespace Umbraco.Web.Models.Mapping config.CreateMap(); config.CreateMap(); - config.CreateMap() .ConstructUsing((ContentTypeDisplay source) => new ContentType(source.ParentId)) @@ -56,7 +55,8 @@ namespace Umbraco.Web.Models.Mapping .ForMember(dto => dto.PropertyGroups, expression => expression.Ignore()) .AfterMap((source, dest) => { - foreach (var groupDisplay in source.Groups.Where(x => x.Name.IsNullOrWhiteSpace() == false ) ) + //get all properties from groups that are not generic properties (-666 id) + foreach (var groupDisplay in source.Groups.Where(x => x.Id != -666)) { //use underlying logic to add the property group which should wire most things up for us dest.AddPropertyGroup(groupDisplay.Name); @@ -70,6 +70,15 @@ namespace Umbraco.Web.Models.Mapping //dest.PropertyGroups.Add(Mapper.Map(groupDisplay)); } + //add generic properties + var genericProperties = source.Groups.FirstOrDefault(x => x.Id == -666); + if(genericProperties != null){ + foreach (var propertyTypeDisplay in genericProperties.Properties) + { + dest.AddPropertyType(Mapper.Map(propertyTypeDisplay)); + } + } + //Sync allowed child types var allowedTypes = source.AllowedContentTypes.Select((t, i) => new ContentTypeSort(t, i));