public static IHtmlString RenderBreadcrumbs(this HtmlHelper helper, ContentTypeAudit.ContentItem contentItem) { var urlResolver = ServiceLocator.Current.GetInstance <UrlHelper>(); var htmlString = "<a href =\"" + urlResolver.ContentUrl(contentItem.ContentLink) + "\" target=\"_blank\">" + contentItem.Name + "</a>"; while (contentItem.Parent != null) { contentItem = contentItem.Parent; htmlString = (contentItem.Parent == null ? "Home" : contentItem.Name) + " > " + htmlString; } return(new MvcHtmlString(htmlString)); }
/// <summary> /// Adds the content type of the specified contentReference to the provided list of contentTypes /// </summary> /// <param name="contentReference"></param> /// <param name="contentTypes"></param> /// <param name="parentContentItem"></param> private void AddPageContentTypeToList(ContentReference contentReference, List <ContentTypeAudit> contentTypes, ContentTypeAudit.ContentItem parentContentItem) { var pageData = _contentRepository.Get <PageData>(contentReference); var newContentItem = new ContentTypeAudit.ContentItem { Name = pageData.Name, ContentLink = contentReference, Parent = parentContentItem }; var knownType = contentTypes.FirstOrDefault(ct => ct.ContentTypeId == pageData.ContentTypeID); if (knownType == null) { var contentType = _contentTypeRepository.Load(pageData.ContentTypeID); contentTypes.Add(new ContentTypeAudit { ContentTypeId = pageData.ContentTypeID, Name = string.IsNullOrEmpty(contentType.DisplayName) ? contentType.Name : contentType.DisplayName, Usages = new List <ContentTypeAudit.ContentItem> { newContentItem } }); } else { knownType.Usages.Add(newContentItem); } var children = _contentRepository.GetChildren <PageData>(contentReference); foreach (var child in children) { AddPageContentTypeToList(child.ContentLink, contentTypes, newContentItem); } }