예제 #1
0
        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);
        }
예제 #2
0
 /// <summary>
 /// 初始化类<see cref="AdminMenuCoreTagHelper"/>。
 /// </summary>
 /// <param name="menuProviderFactory">菜单提供者工厂接口。</param>
 /// <param name="factory">URL辅助类工厂接口。</param>
 public AdminMenuCoreTagHelper(IMenuProviderFactory menuProviderFactory, IUrlHelperFactory factory)
 {
     _menuProviderFactory = menuProviderFactory;
     _factory             = factory;
 }
예제 #3
0
 /// <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;
 }
예제 #4
0
 /// <summary>
 /// 初始化类<see cref="AdminMenuNavigatorTagHelper"/>。
 /// </summary>
 public AdminMenuNavigatorTagHelper(IMenuProviderFactory factory, IUrlHelperFactory urlHelperFactory)
 {
     _factory          = factory;
     _urlHelperFactory = urlHelperFactory;
 }
예제 #5
0
 /// <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>();
 }
예제 #6
0
 /// <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;
 }