public IList <WinformToolbar> GetToolbarsByGroups(WinformToolbarGroup group, bool tenancyFilter = true) { return(group.ToolBars.WhereIf(tenancyFilter, t => t.MultiTenancySides.HasFlag(AbpSession.MultiTenancySide)) .Where(t => string.IsNullOrEmpty(t.Permission) || AbpSession.MultiTenancySide == MultiTenancySides.Host || (!string.IsNullOrEmpty(t.Permission) && _permissionChecker.IsGranted(t.Permission))).ToImmutableList()); }
public WinformToolbarGroup CreateToolbarGroup(string name, string text, string permission, MultiTenancySides multiTenancySides = MultiTenancySides.Host | MultiTenancySides.Tenant) { if (ToolbarGroups.ContainsKey(name)) { return(ToolbarGroups[name]); } else { WinformToolbarGroup winformToolbarGroup = new WinformToolbarGroup(name, text, permission, multiTenancySides); ToolbarGroups.Add(name, winformToolbarGroup); return(winformToolbarGroup); } }
/// <summary> /// tools 菜单 /// </summary> /// <param name="name">tool Name</param> /// <param name="icon">可用时的图标</param> /// <param name="disableIcon">不可用时的图标(当未null时,用可用时的图标)</param> /// <param name="defaultEnable">默认状态下是否可用</param> /// <param name="tip">提示语</param> /// <param name="group">所属组</param> /// <param name="permission">权限</param> /// <param name="multiTenancySides">所属多租户Side,Host or Tenant</param> /// <param name="toolbarEvent">toolbarEvent</param> public WinformToolbar( string name, Image icon, Image disableIcon, bool defaultEnable, string tip, WinformToolbarGroup group, string permission = null, MultiTenancySides multiTenancySides = MultiTenancySides.Host | MultiTenancySides.Tenant, Action <WinformToolbar> toolbarEvent = null ) { this.Name = name; this.Icon = icon; this.DisableIcon = disableIcon; this.DefaultEnable = defaultEnable; this.Tip = tip; this.ToolbarEvent = toolbarEvent; this.WinformToolbarGroup = group; this.MultiTenancySides = multiTenancySides; this.Permission = permission; }
/// <summary> /// 根据组名+toolbar名 获取 toolbar /// </summary> /// <param name="profixedName"></param> /// <returns></returns> public WinformToolbar GetToolbarByProfixedName(string profixedName) { if (profixedName.Contains(WinformToolbar.NameSplitKey)) { string[] names = profixedName.Split(new string[] { WinformToolbar.NameSplitKey }, StringSplitOptions.None); if (names.Length != 2) { throw new AbpException("error profixed name: " + profixedName); } WinformToolbarGroup group = GetToolbarGroup(names[0]); var toolbar = group.ToolBars.FirstOrDefault(t => t.Name.Equals(names[1])); if (toolbar == null) { throw new AbpException("There is no Toolbar with name: " + names[1] + " in group " + names[0]); } return(toolbar); } else { throw new AbpException("error profixed name: " + profixedName); } }