public async Task <CategoryTreeRootBM> GetCategoryTreeAsync(string languageCode)
        {
            IEnumerable <LocalizedCategoryBM> categories = await categoryDataManager.GetAllAsync(languageCode);

            IReadOnlyDictionary <CategoryIdBM, int> productCount = await productDataManager.GetNumberOfProductsInCategoriesAsync(
                categories.Select(x => x.CategoryId).ToArray()
                );

            IEnumerable <CategoryTreeNodeBM> childNodes = BuildNode(categories, null, productCount);

            return(new CategoryTreeRootBM(childNodes, languageCode));
        }