Esempio n. 1
0
        /// <summary>
        /// Получить url страницы с подставленными значениями таргетирования
        /// </summary>
        /// <returns></returns>
        public string GetUrl(ITargetingUrlTransformator urlTransformator = null)
        {
            var resultUrl = GetTrail();

            if (urlTransformator != null)
            {
                resultUrl = urlTransformator.AddCurrentTargetingValuesToUrl(resultUrl);
            }

            return(resultUrl);
        }
Esempio n. 2
0
        public static HtmlString Tree(this IHtmlHelper html, ITargetingUrlTransformator urlTransformator)
        {
            var root   = html.ViewContext.HttpContext.GetStartPage();
            var filter = ((ITargetingFilterAccessor)html.ViewContext.HttpContext.RequestServices.GetService(typeof(ITargetingFilterAccessor)))?.Get();

            var sb = new StringBuilder();

            var node = root;

            sb.Append("<ul>");

            foreach (var item in root.GetChildren(filter))
            {
                VisitNodes(sb, item, filter, urlTransformator);
            }

            sb.Append("</ul>");


            return(new HtmlString(sb.ToString()));
        }
Esempio n. 3
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>");
            }
        }
Esempio n. 4
0
 public MenuViewModelBuilder(ITargetingUrlTransformator urlTransformator)
 {
     UrlTransformator = urlTransformator;
 }