public BreadcrumbsViewModel(IAbstractItem currentPage, string additionalBreadcrumb)
        {
            var result = new List <BreadcrumbsItemViewModel>();

            if (additionalBreadcrumb != null)
            {
                result.Add(new BreadcrumbsItemViewModel {
                    Title = additionalBreadcrumb
                });
            }
            if (currentPage != null)
            {
                while (!(currentPage is IStartPage))
                {
                    if (currentPage.IsPage)
                    {
                        result.Add(new BreadcrumbsItemViewModel {
                            Title = currentPage.Title, Url = currentPage.GetUrl()
                        });
                    }
                    currentPage = currentPage.Parent;
                }
                if (result.Any())
                {
                    result.First().IsActive = true;
                    result.First().Url      = null;
                }
                result.Reverse();
            }
            Items = result;
        }
Esempio n. 2
0
        private static void VisitNodes(StringBuilder sb, IAbstractItem node, ITargetingFilter filter, ITargetingUrlTransformator urlTransformator)
        {
            if (node.IsPage)
            {
                sb.Append($"<li> <a href = {node.GetUrl(urlTransformator)}> {node.Title} </a></li>");
            }
            else
            {
                sb.Append($"<li> {node.Title} </li>");
            }

            var children = node.GetChildren(filter);

            if (children.Any())
            {
                sb.Append("<ul>");
                foreach (var item in children)
                {
                    VisitNodes(sb, item, filter, urlTransformator);
                }
                sb.Append("</ul>");
            }
        }