using AutoMapper; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; using Umbraco.Web.Models.ContentEditing; namespace Umbraco.Web.Models.Mapping { /// /// A mapper which declares how to map content properties. These mappings are shared among media (and probably members) which is /// why they are in their own mapper /// internal class ContentPropertyMapperProfile : Profile { public ContentPropertyMapperProfile(IDataTypeService dataTypeService, ILocalizedTextService textService, ILogger logger, PropertyEditorCollection propertyEditors) { var contentPropertyBasicConverter = new ContentPropertyBasicConverter(dataTypeService, logger, propertyEditors); var contentPropertyDtoConverter = new ContentPropertyDtoConverter(dataTypeService, logger, propertyEditors); var contentPropertyDisplayConverter = new ContentPropertyDisplayConverter(dataTypeService, textService, logger, propertyEditors); //FROM Property TO ContentPropertyBasic CreateMap>() .ForMember(tab => tab.Label, expression => expression.MapFrom(@group => @group.Name)) .ForMember(tab => tab.IsActive, expression => expression.MapFrom(_ => true)) .ForMember(tab => tab.Properties, expression => expression.Ignore()) .ForMember(tab => tab.Alias, expression => expression.Ignore()) .ForMember(tab => tab.Expanded, expression => expression.Ignore()); //FROM Property TO ContentPropertyBasic CreateMap().ConvertUsing(contentPropertyBasicConverter); //FROM Property TO ContentPropertyDto CreateMap().ConvertUsing(contentPropertyDtoConverter); //FROM Property TO ContentPropertyDisplay CreateMap().ConvertUsing(contentPropertyDisplayConverter); } } }