public static void AddBreadcrumbs(this IServiceCollection services) { BreadcrumbsManager breadcrumbsManager = new BreadcrumbsManager(); breadcrumbsManager.Initialize(typeof(Startup).Assembly, new BreadcrumbOptions()); services.AddSingleton(breadcrumbsManager); }
public HomeController(ILogger <HomeController> logger, IRazorViewEngine viewEngine, BreadcrumbsManager breadcrumbsManager, IOptions <Settings> settings) { _logger = logger; _viewEngine = viewEngine; _breadcrumbsManager = breadcrumbsManager; _settings = settings.Value; }
public BreadcrumbsTagHelper(BreadcrumbsManager breadcrumbsManager, IActionContextAccessor actionContextAccessor) { if (breadcrumbsManager == null) { throw new ArgumentNullException(nameof(breadcrumbsManager)); } if (actionContextAccessor == null) { throw new ArgumentNullException(nameof(actionContextAccessor)); } _breadcrumbsManager = breadcrumbsManager; _urlHelper = new UrlHelper(actionContextAccessor.ActionContext); }
public void BreadCrumbManagerShouldReplaceLabelsCorrectly() { //Arrange var crumbs = new List <Breadcrumb>() { new Breadcrumb { Label = "Course X" }, new Breadcrumb { Label = "Course Y" }, new Breadcrumb { Label = "Course Z" } }; var mockContext = new Mock <HttpContext>(); mockContext.SetupGet(c => c.Items).Returns(new Dictionary <object, object>() { { "breadcrumbs", crumbs } }); var httpContextAccessor = new Mock <IHttpContextAccessor>(); httpContextAccessor.SetupGet(c => c.HttpContext).Returns(mockContext.Object); var manager = new BreadcrumbsManager(httpContextAccessor.Object); //Act manager.ReplaceCrumbForSlug("Course X", "Grapes"); manager.ReplaceCrumbForSlug("Course Z", "Whiskey"); //Assert Assert.Collection(crumbs, (b) => { Assert.Equal("Grapes", b.Label); }, (b) => { Assert.Equal("Course Y", b.Label); }, (b) => { Assert.Equal("Whiskey", b.Label); } ); }
public BreadcrumbsTagHelper(BreadcrumbsManager breadcrumbsManager, IActionContextAccessor actionContextAccessor) { _breadcrumbsManager = breadcrumbsManager; _urlHelper = new UrlHelper(actionContextAccessor.ActionContext); }