/// <summary>
        /// 菜单添加功能
        /// </summary>
        /// <param name="menuFid"></param>
        /// <param name="actionFid"></param>
        /// <param name="clientJs"></param>
        /// <param name="actionOrder"></param>
        /// <param name="needAuth"></param>
        /// <param name="detailFlag"></param>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        public bool SetMenuAction(Guid menuFid, Guid actionFid, string clientJs, int actionOrder, bool needAuth, bool detailFlag, string loginUser)
        {
            MenuActionDAL menuActionDal = new MenuActionDAL();
            ///查看关系是否已存在
            MenuActionInfo menuActionInfo = menuActionDal.GetInfo(menuFid, actionFid);

            if (menuActionInfo == null)
            {
                menuActionInfo             = new MenuActionInfo();
                menuActionInfo.Fid         = Guid.NewGuid();
                menuActionInfo.MenuFid     = menuFid;
                menuActionInfo.ActionFid   = actionFid;
                menuActionInfo.ClientJs    = clientJs;
                menuActionInfo.ActionOrder = actionOrder;
                menuActionInfo.NeedAuth    = needAuth;
                menuActionInfo.DetailFlag  = detailFlag;
                menuActionInfo.ValidFlag   = true;
                menuActionInfo.CreateDate  = DateTime.Now;
                menuActionInfo.CreateUser  = loginUser;
                return(menuActionDal.Add(menuActionInfo) > 0 ? true : false);
            }
            menuActionInfo.ClientJs    = clientJs;
            menuActionInfo.ActionOrder = actionOrder;
            menuActionInfo.NeedAuth    = needAuth;
            menuActionInfo.DetailFlag  = detailFlag;
            menuActionInfo.ModifyDate  = DateTime.Now;
            menuActionInfo.ModifyUser  = loginUser;
            return(menuActionDal.Update(menuActionInfo) > 0 ? true : false);
            ///
        }
示例#2
0
        private async Task <ModuleAction> AddMenuAsync(string menuText)
        {
            MenuActionInfo menuInfo = await GetMenuActionAsync(menuText);

            menuText = menuInfo.MenuText;
            ModuleAction menuEntry    = menuInfo.Action;
            ModuleAction parentAction = FindAction(_SiteMenu, menuText);

            if (parentAction != null)
            {
                if (parentAction.SubMenu == null)
                {
                    parentAction.SubMenu = new SerializableList <ModuleAction>()
                    {
                        menuEntry
                    }
                }
                ;
                else
                {
                    parentAction.SubMenu.Add(menuEntry);
                }
            }
            else
            {
                _SiteMenu.Add(menuEntry);
            }
            return(menuEntry);
        }
示例#3
0
        /// <summary>
        /// Assigns the ContextMenuStrip control to the HexBox control.
        /// </summary>
        void CheckBuiltInContextMenu()
        {
            if (this.DesignMode)
            {
                return;
            }

            if (this._contextMenuStrip == null)//创建菜单
            {
                // 添加右键
                ContextMenuStrip cms = new ContextMenuStrip();
                cms.Opening += new CancelEventHandler(cms_Opening);

                System.Windows.Controls.ContextMenu cm_wpf = new System.Windows.Controls.ContextMenu();

                if (!this._hexViewer.IsUserContextMenuOverride)
                {
                    // ASCII
                    _ASCII = new ToolStripMenuItem(ASCIIMenuItemTextInternal, CutMenuItemImage, new EventHandler(ASCII_Click));
                    cms.Items.Add(_ASCII);

                    System.Windows.Controls.MenuItem ascii_mi_wpf = new System.Windows.Controls.MenuItem();
                    ascii_mi_wpf.Header = ASCIIMenuItemTextInternal;
                    ascii_mi_wpf.Click += new System.Windows.RoutedEventHandler(ASCII_Click);
                    cm_wpf.Items.Add(ascii_mi_wpf);

                    // UTF8
                    _UTF8 = new ToolStripMenuItem(UTF8MenuItemTextInternal, CutMenuItemImage, new EventHandler(UTF8_Click));
                    cms.Items.Add(_UTF8);

                    System.Windows.Controls.MenuItem utf8_mi_wpf = new System.Windows.Controls.MenuItem();
                    utf8_mi_wpf.Header = UTF8MenuItemTextInternal;
                    utf8_mi_wpf.Click += new System.Windows.RoutedEventHandler(UTF8_Click);
                    cm_wpf.Items.Add(utf8_mi_wpf);

                    // Unicode
                    _Unicode = new ToolStripMenuItem(UnicodeMenuItemTextInternal, CutMenuItemImage, new EventHandler(Unicode_Click));
                    cms.Items.Add(_Unicode);

                    System.Windows.Controls.MenuItem unicode_mi_wpf = new System.Windows.Controls.MenuItem();
                    unicode_mi_wpf.Header = UnicodeMenuItemTextInternal;
                    unicode_mi_wpf.Click += new System.Windows.RoutedEventHandler(Unicode_Click);
                    cm_wpf.Items.Add(unicode_mi_wpf);

                    // Big5
                    _Big5 = new ToolStripMenuItem(Big5MenuItemTextInternal, CutMenuItemImage, new EventHandler(Big5_Click));
                    cms.Items.Add(_Big5);

                    System.Windows.Controls.MenuItem big5_mi_wpf = new System.Windows.Controls.MenuItem();
                    big5_mi_wpf.Header = Big5MenuItemTextInternal;
                    big5_mi_wpf.Click += new System.Windows.RoutedEventHandler(Big5_Click);
                    cm_wpf.Items.Add(big5_mi_wpf);

                    // Gb2312
                    _Gb2312 = new ToolStripMenuItem(Gb2312MenuItemTextInternal, CutMenuItemImage, new EventHandler(Gb2312_Click));
                    cms.Items.Add(_Gb2312);

                    System.Windows.Controls.MenuItem gb2312_mi_wpf = new System.Windows.Controls.MenuItem();
                    gb2312_mi_wpf.Header = Gb2312MenuItemTextInternal;
                    gb2312_mi_wpf.Click += new System.Windows.RoutedEventHandler(Gb2312_Click);
                    cm_wpf.Items.Add(gb2312_mi_wpf);

                    /*// Base64
                     * _Base64 = new ToolStripMenuItem(Base64MenuItemTextInternal, CutMenuItemImage, new EventHandler(Base64_Click));
                     * cms.Items.Add(_Base64);
                     * // ☆★☆★☆★☆★Base64应该是一个加密方式,不是编码方式。不应该出现在这里的。暂时注释掉这个菜单按钮。
                     * System.Windows.Controls.MenuItem base64_mi_wpf = new System.Windows.Controls.MenuItem();
                     * base64_mi_wpf.Header = Base64MenuItemTextInternal;
                     * base64_mi_wpf.Click += new System.Windows.RoutedEventHandler(Base64_Click);
                     * cm_wpf.Items.Add(base64_mi_wpf);*/

                    // Copy
                    _copyToolStripMenuItem = new ToolStripMenuItem(CopyMenuItemTextInternal, CopyMenuItemImage, new EventHandler(CopyMenuItem_Click));
                    cms.Items.Add(_copyToolStripMenuItem);

                    System.Windows.Controls.MenuItem copy_mi_wpf = new System.Windows.Controls.MenuItem();
                    copy_mi_wpf.Header = CopyMenuItemTextInternal;
                    copy_mi_wpf.Click += new System.Windows.RoutedEventHandler(CopyMenuItem_Click);
                    cm_wpf.Items.Add(copy_mi_wpf);

                    //  _pasteToolStripMenuItem = new ToolStripMenuItem(PasteMenuItemTextInternal, PasteMenuItemImage, new EventHandler(PasteMenuItem_Click));
                    //    cms.Items.Add(_pasteToolStripMenuItem);

                    // SelectAll
                    _selectAllToolStripMenuItem = new ToolStripMenuItem(SelectAllMenuItemTextInternal, SelectAllMenuItemImage, new EventHandler(SelectAllMenuItem_Click));
                    cms.Items.Add(_selectAllToolStripMenuItem);

                    System.Windows.Controls.MenuItem selectall_mi_wpf = new System.Windows.Controls.MenuItem();
                    selectall_mi_wpf.Header = SelectAllMenuItemTextInternal;
                    selectall_mi_wpf.Click += new System.Windows.RoutedEventHandler(SelectAllMenuItem_Click);
                    cm_wpf.Items.Add(selectall_mi_wpf);

                    cms.Items.Add(new ToolStripSeparator());
                }


                if (this._hexBox != null && this._hexViewer.ContextMenuActions != null)
                {
                    for (int i = 0; i < this._hexViewer.ContextMenuActions.Count; ++i)
                    {
                        MenuActionInfo info = this._hexViewer.ContextMenuActions[i];

                        System.Windows.Controls.MenuItem item = new System.Windows.Controls.MenuItem();
                        item.Header = info.Header;
                        item.Click += new System.Windows.RoutedEventHandler((s, e) => { info.DoOnClick(this._hexViewer, e); });
                        cm_wpf.Items.Add(item);
                    }

                    cms.Opening += new CancelEventHandler(BuildInContextMenuStrip_Opening);

                    this._hexViewer.ContextMenu = cm_wpf;
                }

                _contextMenuStrip = cms;
            }

            if (this._hexBox.ByteProvider == null && this._hexBox.ContextMenuStrip != null)
            {
                this._hexBox.ContextMenuStrip = null;
            }
            else if (this._hexBox.ByteProvider != null && this._hexBox.ContextMenuStrip == null)
            {
                this._hexBox.ContextMenuStrip = _contextMenuStrip;
            }
        }
示例#4
0
        /// <summary>
        /// 只获取弹出窗体的授权动作
        /// </summary>
        /// <param name="menuFid"></param>
        /// <param name="roleFid"></param>
        /// <param name="entityName"></param>
        /// <param name="formEditWidth"></param>
        /// <param name="formEditHeight"></param>
        /// <param name="formUrl"></param>
        /// <returns></returns>
        public List <ActionInfo> GetFormActions(Guid menuFid, Guid roleFid, string entityName, out int formEditWidth, out int formEditHeight, out string formUrl)
        {
            ///out默认值
            formEditWidth  = 800;
            formEditHeight = 480;
            formUrl        = string.Empty;
            ///弹出窗体,在菜单管理中限制同级菜单名称不能重复
            MenuInfo formMenuInfo = new MenuDAL().GetInfo(entityName, menuFid);

            if (formMenuInfo == null)
            {
                throw new Exception("MC:0x00000028");///菜单数据错误
            }
            ///窗体属性
            formEditWidth  = formMenuInfo.EditFormWidth.GetValueOrDefault();
            formEditHeight = formMenuInfo.EditFormHeight.GetValueOrDefault();
            formUrl        = formMenuInfo.LinkUrl;

            ///所有按钮,后期按MENU_FID区分
            List <MenuActionInfo> menuAtions = dal.GetList("[MENU_FID] = N'" + formMenuInfo.Fid.GetValueOrDefault() + "'", string.Empty);

            ///无按钮
            if (menuAtions.Count == 0)
            {
                return(new List <ActionInfo>());
            }
            ///不需要授权页面按钮的FID
            List <Guid> menuActionFids = menuAtions.Where(d => !d.NeedAuth.GetValueOrDefault()).Select(d => d.Fid.GetValueOrDefault()).ToList();
            ///获取已授权的按钮GUID
            List <Guid> sourceFids = new RoleAuthDAL().GetAuthSourceFidsByRoleFidAuthTypeInSourceFids(roleFid
                                                                                                      , (int)AuthTypeConstants.ACTION///授权类型为按钮
                                                                                                      , menuAtions.Count(d => d.NeedAuth.GetValueOrDefault()) == 0 ? string.Empty : "'" + string.Join("','", menuAtions.Where(d => d.NeedAuth.GetValueOrDefault()).Select(d => d.Fid.GetValueOrDefault()).ToArray()) + "'");

            ///可以显示的页面按钮
            menuActionFids.AddRange(sourceFids);
            if (menuActionFids.Count == 0)
            {
                return(new List <ActionInfo>());
            }
            ///获取所有的动作按钮
            List <ActionInfo> actionList  = new ActionDAL().GetList("[FID] in ('" + string.Join("','", menuAtions.Where(d => menuActionFids.Contains(d.Fid.GetValueOrDefault())).Select(d => d.ActionFid.GetValueOrDefault()).ToArray()) + "')", string.Empty);
            List <ActionInfo> actionInfos = new List <ActionInfo>();

            foreach (var menuActionFid in menuActionFids)
            {
                MenuActionInfo menuActionInfo = menuAtions.FirstOrDefault(d => d.Fid.GetValueOrDefault() == menuActionFid);
                if (menuActionInfo == null)
                {
                    continue;
                }
                ActionInfo actionInfo = actionList.FirstOrDefault(d => d.Fid.GetValueOrDefault() == menuActionInfo.ActionFid.GetValueOrDefault()).Clone();
                if (actionInfo == null)
                {
                    continue;
                }
                actionInfo.IsListAction = false;
                actionInfo.DisplayOrder = menuActionInfo.ActionOrder.GetValueOrDefault();
                actionInfo.ClientJs     = menuActionInfo.ClientJs;
                actionInfo.Fid          = menuActionInfo.Fid;
                actionInfo.DetailFlag   = menuActionInfo.DetailFlag.GetValueOrDefault();
                actionInfos.Add(actionInfo);
            }
            return(actionInfos.OrderBy(d => d.DisplayOrder).ToList());
        }
示例#5
0
 public long InsertInfo(MenuActionInfo info)
 {
     info.ValidFlag = true;
     return(dal.Add(info));
 }