예제 #1
0
 public override void Read(ContentSchemaField schemaField, AssetField contentField, BsonValue bsonValue)
 {
     if (bsonValue is BsonBinaryData bsonBinary && bsonBinary.IsGuid)
     {
         contentField.Asset = ContentItemProxy.CreateAsset(bsonBinary.ToGuid());
     }
 }
예제 #2
0
        public static Asset FromMongo(this MongoAsset mongoAsset)
        {
            Asset asset = new Asset()
            {
                Id          = mongoAsset.Id,
                CreatedAt   = mongoAsset.CreatedAt,
                ModifiedAt  = mongoAsset.ModifiedAt,
                PublishedAt = mongoAsset.PublishedAt,
                Version     = mongoAsset.Version,
                Name        = mongoAsset.Name,
                Alt         = mongoAsset.Alt,
                Description = mongoAsset.Description,
                Slug        = mongoAsset.Slug,
                Hash        = mongoAsset.Hash,
                MimeType    = mongoAsset.MimeType,
                Size        = mongoAsset.Size,
            };

            if (mongoAsset.Folder != null)
            {
                asset.Folder = ContentItemProxy.CreateAssetFolder(mongoAsset.Folder.Value);
            }

            foreach (var item in mongoAsset.Metaddata)
            {
                asset.SetMetadata((AssetMetadata)BsonSerializer.Deserialize(item.Value, AssetMetadataManager.Default.GetMetadataType(item.Key)));
            }

            return(asset);
        }
예제 #3
0
        public override void Read(ContentSchemaField schemaField, ReferenceField contentField, BsonValue bsonValue)
        {
            if (bsonValue is BsonDocument bsonDocument)
            {
                if (bsonDocument[ReferenceField.IdField] != BsonNull.Value)
                {
                    Guid   targetId   = bsonDocument[ReferenceField.IdField].AsGuid;
                    string targetType = bsonDocument[ReferenceField.SchemaField].AsString;

                    contentField.ContentItem = ContentItemProxy.CreateContentItem(targetId, targetType);
                }
            }
        }
예제 #4
0
        public static AssetFolder ToModel(this MongoAssetFolder mongoAsset)
        {
            AssetFolder asset = new AssetFolder()
            {
                Id         = mongoAsset.Id,
                CreatedAt  = mongoAsset.CreatedAt,
                ModifiedAt = mongoAsset.ModifiedAt,
                Version    = mongoAsset.Version,
                Name       = mongoAsset.Name,
            };

            if (mongoAsset.Parent != null)
            {
                asset.Parent = ContentItemProxy.CreateAssetFolder(mongoAsset.Parent.Value);
            }

            return(asset);
        }