public CatalogOutlines BuildCategoryOutline(string catalogId, string itemId, bool useCache) { var outlines = new CatalogOutlines(); var catalog = GetCatalog(catalogId, useCache); if (catalog is Catalog) { var categoryRelations = GetCategoryItemRelations(itemId, catalogId); if (categoryRelations.Any()) { outlines.AddRange( categoryRelations.Select( categoryRelation => BuildCategoryOutline(catalogId, categoryRelation.Category, useCache))); } } else if (catalog is VirtualCatalog) { var linkedCategories = GetLinkedCategories(itemId, catalogId); if (linkedCategories.Any()) { outlines.AddRange( linkedCategories.Select(cat => BuildCategoryOutline(cat.CatalogId, cat, useCache))); } } return outlines; }
public CatalogOutlines BuildCategoryOutline(string catalogId, string itemId, bool useCache) { var outlines = new CatalogOutlines(); var catalog = GetCatalog(catalogId, useCache); if (catalog is Catalog) { var categoryRelations = GetCategoryItemRelations(itemId, catalogId); if (categoryRelations.Any()) { outlines.AddRange( categoryRelations.Select( categoryRelation => BuildCategoryOutline(catalogId, categoryRelation.Category, useCache))); } } else if (catalog is VirtualCatalog) { var linkedCategories = GetLinkedCategories(itemId, catalogId); if (linkedCategories.Any()) { outlines.AddRange( linkedCategories.Select(cat => BuildCategoryOutline(cat.CatalogId, cat, useCache))); } } return(outlines); }