@model CategoryNavigationModel @functions{ public bool DoesCurrentCategoryHasSubcategories(IList categories) { foreach (var category in categories) { if (category.Id == Model.CurrentCategoryId && category.SubCategories.Count > 0) { return true; } if (DoesCurrentCategoryHasSubcategories(category.SubCategories)) { return true; } } return false; } } @if (Model.Categories.Count > 0) { var controllerName = Url.ActionContext.RouteData.Values["controller"].ToString(); var actionName = Url.ActionContext.RouteData.Values["action"].ToString(); var isCategoryPage = controllerName.Equals("catalog", StringComparison.InvariantCultureIgnoreCase) && actionName.Equals("category", StringComparison.InvariantCultureIgnoreCase); if (isCategoryPage && DoesCurrentCategoryHasSubcategories(Model.Categories)) {
@T("SevenSpikes.Themes.Pavilion.Catalog.Subcategories")
    @foreach (var category in Model.Categories) { var categoryLineModel = new CategoryNavigationModel.CategoryLineModel { CurrentCategoryId = Model.CurrentCategoryId, Category = category }; @await Html.PartialAsync("_CategoryLine.Navigation", categoryLineModel) }
} }