public async Task <IViewComponentResult> InvokeAsync(string NodeAliasPath, int Level, bool LevelIsRelative = true, int MinimumAbsoluteLevel = 2, string CurrentPage = null)
        {
            // Use ViewBag to set current Path
            if (!string.IsNullOrWhiteSpace(CurrentPage))
            {
                if (CurrentPage == "/Home")
                {
                    // Special case for Home since the Link is just "/"
                    CurrentPage = "/";
                }
            }
            else
            {
                if (PageDataContextRetriever.TryRetrieve(out IPageDataContext <TreeNode> Context))
                {
                    CurrentPage = UrlResolver.ResolveUrl(DocumentURLProvider.GetUrl(Context.Page));
                }
            }
            var AncestorPath = await NavigationRepository.GetAncestorPathAsync(NodeAliasPath, Level, LevelIsRelative, MinimumAbsoluteLevel);

            var NavItems = await NavigationRepository.GetSecondaryNavItemsAsync(AncestorPath, Enums.PathSelectionEnum.ParentAndChildren);

            var model = new NavigationViewModel()
            {
                NavItems        = NavItems.ToList(),
                CurrentPagePath = CurrentPage
            };

            return(View(model));
        }
コード例 #2
0
        public async Task <IViewComponentResult> InvokeAsync(bool IncludeDefaultBreadcrumb = true, int Nodeid = -1)
        {
            // Use current page if not provided
            if (Nodeid <= 0)
            {
                if (PageDataContextRetriever.TryRetrieve(out IPageDataContext <TreeNode> Context))
                {
                    Nodeid = Context.Page.NodeID;
                }
            }

            if (Nodeid <= 0)
            {
                return(Content(string.Empty));
            }
            var model = await BreadcrumbRepository.GetBreadcrumbsAsync(Nodeid, IncludeDefaultBreadcrumb);

            return(View(model));
        }
        public async Task <IViewComponentResult> InvokeAsync(bool IncludeDefaultBreadcrumb = true, int Nodeid = -1)
        {
            // Use current page if not provided
            if (Nodeid <= 0)
            {
                if (PageDataContextRetriever.TryRetrieve(out IPageDataContext <TreeNode> Context))
                {
                    Nodeid = Context.Page.NodeID;
                }
            }

            if (Nodeid <= 0)
            {
                return(Content(string.Empty));
            }
            var breadcrumbs = await BreadcrumbRepository.GetBreadcrumbsAsync(Nodeid, IncludeDefaultBreadcrumb);

            var model = await BreadcrumbRepository.BreadcrumbsToJsonLDAsync(breadcrumbs, !IncludeDefaultBreadcrumb);

            // Serialize into the raw JSON data
            model.JsonData = JsonConvert.SerializeObject(model);
            return(View(model));
        }