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);
     }
 }
示例#3
0
 /// <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);
     }
 }