Exemple #1
0
    private IMedia MapDtoToContent(ContentDto dto)
    {
        IMediaType?contentType = _mediaTypeRepository.Get(dto.ContentTypeId);

        Core.Models.Media media = ContentBaseFactory.BuildEntity(dto, contentType);

        // get properties - indexed by version id
        var versionId = dto.ContentVersionDto.Id;
        var temp      = new TempContent <Core.Models.Media>(dto.NodeId, versionId, 0, contentType);
        IDictionary <int, PropertyCollection> properties =
            GetPropertyCollections(new List <TempContent <Core.Models.Media> > {
            temp
        });

        media.Properties = properties[versionId];

        // reset dirty initial properties (U4-1946)
        media.ResetDirtyProperties(false);
        return(media);
    }
        /// <summary>
        /// Builds an IMedia item from a dto and content type.
        /// </summary>
        public static Core.Models.Media BuildEntity(ContentDto dto, IMediaType contentType)
        {
            var nodeDto           = dto.NodeDto;
            var contentVersionDto = dto.ContentVersionDto;

            var content = new Core.Models.Media(nodeDto.Text, nodeDto.ParentId, contentType);

            try
            {
                content.DisableChangeTracking();

                content.Id        = dto.NodeId;
                content.Key       = nodeDto.UniqueId;
                content.VersionId = contentVersionDto.Id;

                // TODO: missing names?

                content.Path      = nodeDto.Path;
                content.Level     = nodeDto.Level;
                content.ParentId  = nodeDto.ParentId;
                content.SortOrder = nodeDto.SortOrder;
                content.Trashed   = nodeDto.Trashed;

                content.CreatorId  = nodeDto.UserId ?? Cms.Core.Constants.Security.UnknownUserId;
                content.WriterId   = contentVersionDto.UserId ?? Cms.Core.Constants.Security.UnknownUserId;
                content.CreateDate = nodeDto.CreateDate;
                content.UpdateDate = contentVersionDto.VersionDate;

                // reset dirty initial properties (U4-1946)
                content.ResetDirtyProperties(false);
                return(content);
            }
            finally
            {
                content.EnableChangeTracking();
            }
        }