public AssetPropertyGraph(AssetPropertyGraphContainer container, AssetItem assetItem, ILogger logger)
        {
            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }
            if (assetItem == null)
            {
                throw new ArgumentNullException(nameof(assetItem));
            }
            Container = container;
            AssetCollectionItemIdHelper.GenerateMissingItemIds(assetItem.Asset);
            CollectionItemIdsAnalysis.FixupItemIds(assetItem, logger);
            Asset    = assetItem.Asset;
            RootNode = (AssetObjectNode)Container.NodeContainer.GetOrCreateNode(assetItem.Asset);
            ApplyOverrides(RootNode, assetItem.Overrides);
            nodeListener           = new GraphNodeChangeListener(RootNode, ShouldListenToTargetNode);
            nodeListener.Changing += AssetContentChanging;
            nodeListener.Changed  += AssetContentChanged;

            baseLinker = new AssetToBaseNodeLinker(this)
            {
                LinkAction = LinkBaseNode
            };
        }
 public void PrepareForSave(ILogger logger, AssetItem assetItem)
 {
     if (assetItem.Asset != Asset)
     {
         throw new ArgumentException($@"The given {nameof(AssetItem)} does not match the asset associated with this instance", nameof(assetItem));
     }
     AssetCollectionItemIdHelper.GenerateMissingItemIds(assetItem.Asset);
     CollectionItemIdsAnalysis.FixupItemIds(assetItem, logger);
     assetItem.Overrides = GenerateOverridesForSerialization(RootNode);
 }
Example #3
0
 public void PrepareForSave(ILogger logger)
 {
     AssetCollectionItemIdHelper.GenerateMissingItemIds(AssetItem.Asset);
     CollectionItemIdsAnalysis.FixupItemIds(AssetItem, logger);
     AssetItem.Overrides = GenerateOverridesForSerialization(RootNode);
 }