/// <summary>
        ///     删除功能项
        /// </summary>
        /// <param name="input">功能项信息</param>
        /// <returns></returns>
        public async Task <OperateStatus> DeleteMenuButton(IdInput input)
        {
            var operateStatus = new OperateStatus();
            //查看该功能项是否已被特性占用
            var permissions = await _permissionLogic.DeleteSystemPermissionsByPrivilegeAccessAndValue(EnumPrivilegeAccess.菜单按钮, input.Id);

            return(await DeleteAsync(new SystemMenuButton
            {
                MenuButtonId = input.Id
            }));
        }
示例#2
0
        /// <summary>
        ///     删除菜单及下级数据
        /// </summary>
        /// <param name="input">父级id</param>
        /// <returns></returns>
        public async Task <OperateStatus> DeleteMenuAndChilds(IdInput <string> input)
        {
            var operateStatus = new OperateStatus();
            //判断该项能否进行删除
            var menu = await GetByIdAsync(input.Id);

            if (!menu.CanbeDelete)
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = Chs.CanotDelete;
                return(operateStatus);
            }
            foreach (var id in input.Id.Split(','))
            {
                Guid menuId = Guid.Parse(id);
                MenuDeletGuid.Add(menuId);
                await GetMenuDeleteGuid(menuId);

                foreach (var delete in MenuDeletGuid)
                {
                    await _permissionLogic.DeleteSystemPermissionsByPrivilegeAccessAndValue(EnumPrivilegeAccess.菜单, delete);

                    //删除对应按钮及按钮权限
                    var functions = await _menuButtonRepository.GetMenuButtonByMenuId(new SystemMenuGetMenuButtonByMenuIdInput { Id = delete });

                    foreach (var item in functions)
                    {
                        await _permissionLogic.DeleteSystemPermissionsByPrivilegeAccessAndValue(EnumPrivilegeAccess.菜单按钮, item.MenuButtonId);

                        await _menuButtonRepository.DeleteAsync(new SystemMenuButton { MenuButtonId = item.MenuButtonId });
                    }
                    await DeleteAsync(new SystemMenu
                    {
                        MenuId = delete
                    });
                }
            }
            operateStatus.ResultSign = ResultSign.Successful;
            operateStatus.Message    = Chs.Successful;
            return(operateStatus);
        }