From f65bff185d74628df2b6c4ece3dcf762b058612c Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Fri, 29 May 2015 09:20:59 +0200 Subject: [PATCH] WIP On mapping --- .../Models/Mapping/ContentTypeModelMapper.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs index c9a03ff731..d9ed8369d5 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs @@ -1,4 +1,6 @@ using System; +using System.Linq; + using AutoMapper; using Umbraco.Core; using Umbraco.Core.Models; @@ -33,10 +35,12 @@ namespace Umbraco.Web.Models.Mapping config.CreateMap(); config.CreateMap(); - config.CreateMap() .ConstructUsing((ContentTypeDisplay source) => new ContentType(source.ParentId)) - //Ignore these since they are 'read only' and only updated with the repository layer + + //only map id if set to something higher then zero + .ForMember(dto => dto.Id, expression => expression.Condition(display => (Convert.ToInt32(display.Id) > 0))) + .ForMember(dto => dto.CreatorId, expression => expression.Ignore()) .ForMember(dto => dto.Level, expression => expression.Ignore()) .ForMember(dto => dto.CreateDate, expression => expression.Ignore()) @@ -48,7 +52,7 @@ namespace Umbraco.Web.Models.Mapping .AfterMap((source, dest) => { dest.PropertyGroups = new PropertyGroupCollection(); - foreach (var groupDisplay in source.Groups) + foreach (var groupDisplay in source.Groups.Where(x => !x.Name.IsNullOrWhiteSpace() ) ) { dest.PropertyGroups.Add(Mapper.Map(groupDisplay)); } @@ -82,15 +86,11 @@ namespace Umbraco.Web.Models.Mapping config.CreateMap() + .ForMember(dest => dest.Id, expression => expression.Condition(source => source.Id > 0)) .ForMember(g => g.CreateDate, expression => expression.Ignore()) - .ForMember(g => g.UpdateDate, expression => expression.Ignore()) + .ForMember(g => g.UpdateDate, expression => expression.Ignore()) .ForMember(g => g.ParentId, expression => expression.MapFrom(display => display.ParentGroupId)) - //NOTE: We don't actually need to map these because auto-mapper will automatically do that since they are the same name! - //.ForMember(g => g.SortOrder, expression => expression.MapFrom(display => display.SortOrder)) - //.ForMember(g => g.Id, expression => expression.MapFrom(display => display.Id)) - //.ForMember(g => g.Name, expression => expression.MapFrom(display => display.Name)) - //ignore these, we'll do this in after map .ForMember(g => g.PropertyTypes, expression => expression.Ignore()) .AfterMap((source, destination) =>