using System; using System.Linq; using Microsoft.Commerce.Common.MessageBuilders; using Microsoft.Commerce.Contracts; using Microsoft.Commerce.Contracts.Messages; using Microsoft.CommerceServer.Catalog; using Microsoft.CommerceServer.Runtime; namespace ASPNet3346 { public partial class GetCatalogCategories : System.Web.UI.Page { protected void btnCS2007_Click(object sender, EventArgs e) { ProductCatalog productCatalog = (ProductCatalog)CommerceContext.Current.CatalogSystem.GetCatalog("Adventure Works Catalog", "en-US"); // Get the root category. Category rootCategory = productCatalog.GetRootCategory(); CatalogItemsDataSet categories = rootCategory.ChildCategories.DataSet; foreach (CatalogItemsDataSet.CatalogItem category in categories.CatalogItems) { DisplayHelper.DisplayValue("DisplayName",category.DisplayName,Response); } } private void GetRootCategory() { var catalogQuery = new CommerceQuery("Catalog"); //catalogQuery.SearchCriteria.Model.Properties["language"] = "en-US"; catalogQuery.SearchCriteria.Model.Id = "Adventure Works Catalog"; //Get Root Category // Add Related Query Operation for root Category ie. _root_ { CommerceQueryRelatedItem queryRootCategory = new CommerceQueryRelatedItem("RootCategory", "Category"); queryRootCategory.Model.Properties.Add("Id"); queryRootCategory.Model.Properties.Add("DisplayName"); catalogQuery.RelatedOperations.Add(queryRootCategory); } CommerceResponse response = CommerceFoundationServiceAgent.Execute(catalogQuery); // Handle Responses CommerceQueryOperationResponse queryResponse = response.OperationResponses.Single() as CommerceQueryOperationResponse; CommerceEntity productCatalog = queryResponse.CommerceEntities.SingleOrDefault(); DisplayHelper.DisplayValue("Catalog ID", productCatalog.Id, Response); DisplayHelper.DisplayValue("IdentifyingProductProperty", productCatalog.Properties["IdentifyingProductProperty"], Response); var rootCategory = (productCatalog.GetPropertyValue("RootCategory") as CommerceRelationship).Target; DisplayHelper.DisplayValue("Category ID", rootCategory.Id, Response); DisplayHelper.DisplayValue("Category DisplayName", rootCategory.Properties["DisplayName"].ToString(), Response); } protected void btnCS2009_Click(object sender, EventArgs e) { // GetRootCategory(); // Optional for your knowledge var catalogQuery = new CommerceQuery("Category"); catalogQuery.SearchCriteria.Model.Properties["DisplayName"] = "_root_";//this indicates its root category, Please refer GetRootCategory() for more details catalogQuery.SearchCriteria.Model.Properties["CatalogId"] = "Adventure Works Catalog"; //Get Child Categories // Add Related Query Operation for child products { CommerceQueryRelatedItem queryChildProducts = new CommerceQueryRelatedItem("ChildCategories", "Category"); catalogQuery.RelatedOperations.Add(queryChildProducts); } CommerceResponse response = CommerceFoundationServiceAgent.Execute(catalogQuery); // Handle Responses CommerceQueryOperationResponse queryResponse = response.OperationResponses.Single() as CommerceQueryOperationResponse; CommerceEntity productCatalog = queryResponse.CommerceEntities.SingleOrDefault(); var childCategories = productCatalog.GetPropertyValue("ChildCategories") as CommerceRelationshipList; foreach (var commerceRelationship in childCategories) { CommerceEntity childcategory = commerceRelationship.Target; DisplayHelper.DisplayValue("Root Category ID", childcategory.Id, Response); } } } }
Attached Source Code : ASPNet3346