public void GetBreadcrumb_FormsBreadcrumbForCurrentAction() { routeValues["area"] = "administration"; routeValues["controller"] = "roles"; routeValues["action"] = "index"; List <MvcSiteMapNode> nodes = parser.GetAllNodes(siteMap).ToList(); MvcSiteMapBreadcrumb expected = CreateBreadcrumb(nodes[1], nodes[1].Children.First()); MvcSiteMapBreadcrumb actual = provider.GetBreadcrumb(); TestHelper.EnumPropertyWiseEqual(expected, actual); }
public MvcSiteMapBreadcrumb GetBreadcrumb() { MvcSiteMapBreadcrumb breadcrumb = new MvcSiteMapBreadcrumb(); MvcSiteMapNode currentNode = allNodes.SingleOrDefault(node => String.Compare(node.Controller, CurrentController, true) == 0 && String.Compare(node.Action, CurrentAction, true) == 0 && String.Compare(node.Area, CurrentArea, true) == 0); while (currentNode != null) { breadcrumb.Insert(0, CreateBreadcrumbNode(currentNode)); currentNode = currentNode.Parent; } return(breadcrumb); }
private MvcSiteMapBreadcrumb CreateBreadcrumb(params MvcSiteMapNode[] nodes) { MvcSiteMapBreadcrumb breadcrumb = new MvcSiteMapBreadcrumb(); foreach (MvcSiteMapNode node in nodes) { breadcrumb.Add(new MvcSiteMapBreadcrumbNode() { Title = ResourceProvider.GetSiteMapTitle(node.Area, node.Controller, node.Action), IconClass = node.IconClass, Controller = node.Controller, Action = node.Action, Area = node.Area }); } return(breadcrumb); }