Example #1
0
        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);
            }
        }