using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AutoMapper; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Mapping; using Umbraco.Core.PropertyEditors; using Umbraco.Web.Models.ContentEditing; namespace Umbraco.Web.Models.Mapping { /// /// Declares model mappings for media. /// internal class MediaModelMapper : MapperConfiguration { public override void ConfigureMappings(IConfiguration config, ApplicationContext applicationContext) { //FROM IMedia TO MediaItemDisplay config.CreateMap() .ForMember( dto => dto.Owner, expression => expression.ResolveUsing>()) .ForMember( dto => dto.Icon, expression => expression.MapFrom(content => content.ContentType.Icon)) .ForMember( dto => dto.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias)) .ForMember( dto => dto.ContentTypeName, expression => expression.MapFrom(content => content.ContentType.Name)) .ForMember(display => display.Properties, expression => expression.Ignore()) .ForMember(display => display.Tabs, expression => expression.ResolveUsing()) .AfterMap(MapGenericCustomProperties); /* .AfterMap((media, display) => TabsAndPropertiesResolver.MapGenericProperties(media, display)); */ //FROM IMedia TO ContentItemBasic config.CreateMap>() .ForMember( dto => dto.Owner, expression => expression.ResolveUsing>()) .ForMember( dto => dto.Icon, expression => expression.MapFrom(content => content.ContentType.Icon)) .ForMember( dto => dto.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias)); //FROM IMedia TO ContentItemDto config.CreateMap>() .ForMember( dto => dto.Owner, expression => expression.ResolveUsing>()); } private static void MapGenericCustomProperties(IMedia media, MediaItemDisplay display) { if (media.ContentType.IsContainer) { TabsAndPropertiesResolver.AddContainerView(display, "media"); } TabsAndPropertiesResolver.MapGenericProperties(media, display); } } }