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); }
public void PrepareForSave(ILogger logger) { AssetCollectionItemIdHelper.GenerateMissingItemIds(AssetItem.Asset); CollectionItemIdsAnalysis.FixupItemIds(AssetItem, logger); AssetItem.Overrides = GenerateOverridesForSerialization(RootNode); }