using Umbraco.Cms.Api.Management.ViewModels; using Umbraco.Cms.Core.Mapping; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Api.Management.ViewModels.TrackedReferences; namespace Umbraco.Cms.Api.Management.Mapping.TrackedReferences; public class TrackedReferenceViewModelsMapDefinition : IMapDefinition { public void DefineMaps(IUmbracoMapper mapper) { mapper.Define((source, context) => new DocumentReferenceResponseModel(), Map); mapper.Define((source, context) => new MediaReferenceResponseModel(), Map); mapper.Define((source, context) => new DefaultReferenceResponseModel(), Map); mapper.Define((source, context) => new ReferenceByIdModel(), Map); } // Umbraco.Code.MapAll private void Map(RelationItemModel source, DocumentReferenceResponseModel target, MapperContext context) { target.Id = source.NodeKey; target.Name = source.NodeName; target.Published = source.NodePublished; target.DocumentType = new TrackedReferenceDocumentType { Alias = source.ContentTypeAlias, Icon = source.ContentTypeIcon, Name = source.ContentTypeName, }; } // Umbraco.Code.MapAll private void Map(RelationItemModel source, MediaReferenceResponseModel target, MapperContext context) { target.Id = source.NodeKey; target.Name = source.NodeName; target.MediaType = new TrackedReferenceMediaType { Alias = source.ContentTypeAlias, Icon = source.ContentTypeIcon, Name = source.ContentTypeName, }; } // Umbraco.Code.MapAll private void Map(RelationItemModel source, DefaultReferenceResponseModel target, MapperContext context) { target.Id = source.NodeKey; target.Name = source.NodeName; target.Type = source.NodeType; target.Icon = source.ContentTypeIcon; } // Umbraco.Code.MapAll private void Map(RelationItemModel source, ReferenceByIdModel target, MapperContext context) { target.Id = source.NodeKey; } }