public static MenuItem?GetCurrent(this ViewContext viewContext, IMenuProviderFactory factory, string provider, IUrlHelper urlHelper) { var current = viewContext.HttpContext.Items[CurrentCacheKey] as MenuItem; if (current == null) { var name = viewContext.ViewData[CurrentKey]?.ToString(); if (name != null) { var item = factory.GetMenu(provider, name); if (item != null) { return(item); } } var path = viewContext.HttpContext.Request.Path; current = factory.GetMenus(provider).FirstOrDefault(it => string.Compare(it.LinkUrl(urlHelper, null), path, true) == 0); viewContext.HttpContext.Items[CurrentCacheKey] = current; } return(current); }
/// <summary> /// 初始化类<see cref="AdminMenuCoreTagHelper"/>。 /// </summary> /// <param name="menuProviderFactory">菜单提供者工厂接口。</param> /// <param name="factory">URL辅助类工厂接口。</param> public AdminMenuCoreTagHelper(IMenuProviderFactory menuProviderFactory, IUrlHelperFactory factory) { _menuProviderFactory = menuProviderFactory; _factory = factory; }
/// <summary> /// 初始化类<see cref="MenuTagHelper"/>。 /// </summary> /// <param name="factory">菜单提供者工厂接口。</param> /// <param name="urlHelperFactory">URL辅助类工厂接口。</param> /// <param name="authorizationService">权限验证服务。</param> public MenuTagHelper(IMenuProviderFactory factory, IUrlHelperFactory urlHelperFactory, IPermissionAuthorizationService authorizationService) { _factory = factory; _urlHelperFactory = urlHelperFactory; _authorizationService = authorizationService; }
/// <summary> /// 初始化类<see cref="AdminMenuNavigatorTagHelper"/>。 /// </summary> public AdminMenuNavigatorTagHelper(IMenuProviderFactory factory, IUrlHelperFactory urlHelperFactory) { _factory = factory; _urlHelperFactory = urlHelperFactory; }
/// <summary> /// 初始化类<see cref="PermissionAdminMenuTagHelper"/>。 /// </summary> /// <param name="menuProviderFactory">菜单提供者工厂接口。</param> /// <param name="factory">URL辅助类工厂接口。</param> /// <param name="serviceProvider">服务提供者。</param> public PermissionAdminMenuTagHelper(IMenuProviderFactory menuProviderFactory, IUrlHelperFactory factory, IServiceProvider serviceProvider) : base(menuProviderFactory, factory) { _permissionManager = serviceProvider.GetService <IPermissionManager>(); }
/// <summary> /// 初始化类<see cref="AdminMenuTagHelper"/>。 /// </summary> /// <param name="menuProviderFactory">菜单提供者工厂接口。</param> /// <param name="factory">URL辅助类工厂接口。</param> /// <param name="permissionManager">权限管理接口。</param> public AdminMenuTagHelper(IMenuProviderFactory menuProviderFactory, IUrlHelperFactory factory, IPermissionManager permissionManager) { _menuProviderFactory = menuProviderFactory; _factory = factory; _permissionManager = permissionManager; }