diff --git a/src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs b/src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs index 4ce8edbdc2..d7dc5cf46a 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using AutoMapper; using Umbraco.Core; using Umbraco.Core.Models; @@ -80,6 +81,8 @@ namespace Umbraco.Web.Models.Mapping .ForMember(dest => dest.ContentTypeAlias, opt => opt.MapFrom(src => src.ContentType.Alias)) .ForMember(dest => dest.Alias, opt => opt.Ignore()) .ForMember(dest => dest.AdditionalData, opt => opt.Ignore()) + .ForMember(dest => dest.UpdateDate, opt => opt.ResolveUsing()) + .ForMember(dest => dest.Published, opt => opt.ResolveUsing()) .ForMember(dest => dest.Name, opt => opt.ResolveUsing()); //FROM IContent TO ContentPropertyCollectionDto @@ -88,6 +91,24 @@ namespace Umbraco.Web.Models.Mapping } } + internal class CultureUpdateDateResolver : IValueResolver, DateTime> + { + public DateTime Resolve(IContent source, ContentItemBasic destination, DateTime destMember, ResolutionContext context) + { + var culture = context.GetCulture(); + return source.GetPublishDate(culture).HasValue ? source.GetPublishDate(culture).Value : source.UpdateDate; + } + } + + internal class CulturePublishedResolver : IValueResolver, bool> + { + public bool Resolve(IContent source, ContentItemBasic destination, bool destMember, ResolutionContext context) + { + var culture = context.GetCulture(); + return source.IsCulturePublished(culture); + } + } + internal class CultureNameResolver : IValueResolver, string> { public string Resolve(IContent source, ContentItemBasic destination, string destMember, ResolutionContext context)