/// <inheritdoc /> public List <AssetItem> FindAssetInheritances(AssetId assetId, AssetInheritanceSearchOptions searchOptions = AssetInheritanceSearchOptions.All) { var list = new List <AssetItem>(); lock (Initialize()) { ContentLinkType searchType = 0; if ((searchOptions & AssetInheritanceSearchOptions.Base) != 0) { searchType |= ContentLinkType.Inheritance; } if ((searchOptions & AssetInheritanceSearchOptions.Composition) != 0) { searchType |= ContentLinkType.CompositionInheritance; } AssetDependencies dependencies; if (Dependencies.TryGetValue(assetId, out dependencies)) { list.AddRange(dependencies.LinksOut.Where(p => (p.Type & searchType) != 0).Select(p => p.Item.Clone(true))); } } return(list); }
/// <summary> /// Finds the assets inheriting from the specified asset id (this is a direct inheritance, not indirect). /// </summary> /// <param name="assetId">The asset identifier.</param> /// <param name="searchOptions">The types of inheritance to search for</param> /// <returns>A list of asset inheriting from the specified asset id.</returns> public List<AssetItem> FindAssetsInheritingFrom(Guid assetId, AssetInheritanceSearchOptions searchOptions = AssetInheritanceSearchOptions.All) { var list = new List<AssetItem>(); lock (Initialize()) { ContentLinkType searchType = 0; if((searchOptions & AssetInheritanceSearchOptions.Base) != 0) searchType |= ContentLinkType.Inheritance; if((searchOptions & AssetInheritanceSearchOptions.Composition) != 0) searchType |= ContentLinkType.CompositionInheritance; AssetDependencies dependencies; if (Dependencies.TryGetValue(assetId, out dependencies)) { list.AddRange(dependencies.LinksIn.Where(p => (p.Type & searchType) != 0).Select(p => p.Item.Clone(true))); } } return list; }