private void AddChildMenuRight(MD_Menu _fmenu, string _fRightID, List <MD_RightDefine> _ret, MetaDataServiceClient _mdc) { IList <MD_Menu> _menuList = _mdc.GetSubMenuDefine(_fmenu.MenuID); foreach (MD_Menu _menu in _menuList) { MD_RightDefine _item = new MD_RightDefine(); decimal _rightid = decimal.Parse(_menu.MenuID) * 1000; _item.RightID = _rightid.ToString(); _item.MenuID = _menu.MenuID; _item.FatherRightID = _fRightID; _item.DisplayOrder = _menu.DisplayOrder; _item.RightDescript = _menu.MenuToolTip; _item.RightName = _menu.MenuName; _item.RightType = "动态菜单"; _item.RightMeta = ""; _ret.Add(_item); if (_menu.MenuType != null || _menu.MenuType != "") { if (_menu.MenuType == "WEB.MENU") { AddWebMenuRight(_menu, _item, _ret); } else { AddPluginRight(_menu.MenuType, _item, _ret); } } AddChildMenuRight(_menu, _item.RightID, _ret, _mdc); } }
private void ShowChildren(TreeListNode _fnode, MD_RightDefine _fRight) { MC_FindRightByStr _finder = new MC_FindRightByStr(_fRight.RightID); List <MD_RightDefine> _childRightItems = RightData.FindAll(new Predicate <MD_RightDefine>(_finder.FindByFatherID)); _childRightItems.Sort(new MC_RightComparer()); foreach (MD_RightDefine _rd in _childRightItems) { TreeListNode _dwnode = this.treeList1.AppendNode(null, _fnode); _dwnode.SetValue(this.treeListColumn1, _rd.RightName); _dwnode.ImageIndex = 0; _dwnode.SelectImageIndex = 2; _dwnode.Tag = _rd; ShowChildren(_dwnode, _rd); } }
private void AddWebMenuRight(MD_Menu _menu, MD_RightDefine _fitem, List <MD_RightDefine> _ret) { string _rparam = StrUtils.GetMetaByName2("权限定义", _menu.MenuParameter); if (_rparam == "") { return; } string[] _rightList = _rparam.Split(','); foreach (string _rightString in _rightList) { string[] _rItems = _rightString.Split(':'); if (_rItems.Length > 2) { MD_RightDefine _item = new MD_RightDefine(); decimal _rightid = decimal.Parse(_fitem.RightID) + decimal.Parse(_rItems[0]); _item.RightID = _rightid.ToString(); _item.MenuID = _fitem.MenuID; decimal _frightid = 0; try { _frightid = decimal.Parse(_rItems[2]); } catch (Exception ex) { _frightid = 0; this.ErrorMsg = ex.Message; } decimal _fid = decimal.Parse(_fitem.RightID) + _frightid; _item.FatherRightID = _fid.ToString(); _item.DisplayOrder = int.Parse(_rItems[0]); _item.RightDescript = _rItems[1]; _item.RightName = _rItems[1]; _item.RightType = "动态菜单"; _item.RightMeta = ""; _ret.Add(_item); } } }
private void AddPluginRight(string _menuType, MD_RightDefine _fitem, List <MD_RightDefine> _ret) { string[] _mString = _menuType.Split('.'); //添加此类型菜单中的功能权限 IPluginService _ps = (IPluginService)_application.GetService(typeof(IPluginService)); IPlugin _plugin = _ps.GetPluginInstance(_mString[0]); if (_plugin != null) { List <MenuType> _mts = _plugin.GetMenuDefines(); if (_mts != null) { foreach (MenuType _mt in _mts) { if (_mt.TypeCommandName == _menuType) { foreach (MenuRightItem _crDefine in _mt.ChildRightItem) { MD_RightDefine _item = new MD_RightDefine(); decimal _rightid = decimal.Parse(_fitem.RightID) + _crDefine.Index; _item.RightID = _rightid.ToString(); _item.MenuID = _fitem.MenuID; _item.FatherRightID = _fitem.RightID; _item.DisplayOrder = _crDefine.Index; _item.RightDescript = _crDefine.Title; _item.RightName = _crDefine.Title; _item.RightType = "动态菜单"; _item.RightMeta = ""; _ret.Add(_item); } } } } } }
public bool FindByFatherID(MD_RightDefine _right) { return(_right.FatherRightID == FindStr); }
public bool FindByID(MD_RightDefine _right) { return(_right.RightID == FindStr); }
/// <summary> /// 创建新的权限树 /// </summary> private void CreateNewRightTree() { IList <MD_Menu> _menuList; List <MD_RightDefine> _ret = new List <MD_RightDefine>(); using (MetaDataServiceClient _mdc = new MetaDataServiceClient()) { #region 通过菜单定义建立权限项 try { this.backgroundWorker2.ReportProgress(10, "正在取菜单定义数据..."); _menuList = _mdc.GetMenuDefineOfNode(this.NodesData.DWDM); this.backgroundWorker2.ReportProgress(10, "取菜单定义成功!"); } catch (Exception ex) { this.backgroundWorker2.ReportProgress(10, string.Format("取菜单定义数据失败!!!{0}", ex.Message)); return; } try { foreach (MD_Menu _menu in _menuList) { MD_RightDefine _item = new MD_RightDefine(); decimal _rightid = decimal.Parse(_menu.MenuID) * 1000; _item.RightID = _rightid.ToString(); _item.MenuID = _menu.MenuID; _item.FatherRightID = ""; _item.DisplayOrder = _menu.DisplayOrder; _item.RightDescript = _menu.MenuToolTip; _item.RightName = _menu.MenuName; _item.RightType = "动态菜单"; _item.RightMeta = ""; _ret.Add(_item); if (_menu.MenuType != null || _menu.MenuType != "") { //添加此类型菜单中的功能权限 AddPluginRight(_menu.MenuType, _item, _ret); } AddChildMenuRight(_menu, _item.RightID, _ret, _mdc); } } catch (Exception ex) { this.backgroundWorker2.ReportProgress(10, string.Format("处理权限定义数据失败!!!{0}", ex.Message)); return; } #endregion this.backgroundWorker2.ReportProgress(10, "处理权限数据完成!正在写入..."); try { if (_mdc.SaveRightDefine(_ret.ToArray())) { this.RightData = _ret; } this.backgroundWorker2.ReportProgress(10, "写入权限数据完成..."); } catch (Exception ex) { this.backgroundWorker2.ReportProgress(10, string.Format("写入权限定义数据失败!!!{0}", ex.Message)); } } }