public ActionResult RenderTagsOrCategoriesSidebarFilter() { TagsOrCategoriesSidebarFilter viewModel = null; try { string blogArchivePageItemID = SitecoreUtility.GetRenderingParameters(References.Templates.TagsOrCategoriesSidebarFilter.ID, References.Templates.TagsOrCategoriesSidebarFilter.Fields.BlogArchivePage); if (!string.IsNullOrEmpty(blogArchivePageItemID)) { Item blogArchivePageItem = SitecoreUtility.GetItem(new ID(blogArchivePageItemID)); if (blogArchivePageItem != null) { viewModel = new TagsOrCategoriesSidebarFilter(); viewModel.SectionTitle = SitecoreUtility.GetRenderingParameters(References.Templates.TagsOrCategoriesSidebarFilter.ID, References.Templates.TagsOrCategoriesSidebarFilter.Fields.SectionTitle); viewModel.DisplayItemsAsTags = SitecoreUtility.GetRenderingParameters(References.Templates.TagsOrCategoriesSidebarFilter.ID, References.Templates.TagsOrCategoriesSidebarFilter.Fields.DisplayItemsAsTags) == "1"; viewModel.BlogArchivePageURL = SitecoreUtility.GetItemURL(blogArchivePageItem); if (!viewModel.DisplayItemsAsTags) { List <BlogCategory> categoriesUsedByBlogs = new List <BlogCategory>(); Item blogCategoriesFolderItem = SitecoreUtility.GetItem(References.Content.BlogCategoriesFolder); if (blogCategoriesFolderItem != null && blogCategoriesFolderItem.HasChildren) { List <Item> activeCategories = SitecoreUtility.GetItemsByTemplate(blogCategoriesFolderItem, References.Templates.BlogCategory.ID) .Where(x => x.Fields[References.Templates.BlogCategory.Fields.IsActive].Value == "1").ToList(); if (activeCategories != null && activeCategories.Count > 0) { foreach (Item category in activeCategories) { if (SitecoreUtility.HasReferrers(category, References.Templates.BlogPage.ID, References.Templates.Blog.Fields.IsActive)) { BlogCategory blogCategory = new BlogCategory(category); categoriesUsedByBlogs.Add(blogCategory); } } viewModel.BlogCategories = categoriesUsedByBlogs; } } } else { List <BlogTag> tagsUsedByBlogs = new List <BlogTag>(); Item blogTagsFolderItem = SitecoreUtility.GetItem(References.Content.BlogTagsFolder); if (blogTagsFolderItem != null && blogTagsFolderItem.HasChildren) { List <Item> activeTags = SitecoreUtility.GetItemsByTemplate(blogTagsFolderItem, References.Templates.BlogTag.ID) .Where(x => x.Fields[References.Templates.BlogTag.Fields.IsActive].Value == "1").ToList(); if (activeTags != null && activeTags.Count > 0) { foreach (Item tag in activeTags) { if (SitecoreUtility.HasReferrers(tag, References.Templates.BlogPage.ID, References.Templates.Blog.Fields.IsActive)) { BlogTag blogTag = new BlogTag(tag); tagsUsedByBlogs.Add(blogTag); } } viewModel.BlogTags = tagsUsedByBlogs; } } } } } } catch (System.Exception ex) { LogManager.SaveLog(System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, ex, LogManager.LogTypes.Error, string.Empty); } return(View(GlobalConstants.SUBLAYOUTS_PATH + "PageContent/TagsOrCategoriesSidebarFilter.cshtml", viewModel)); }