Exemple #1
0
 /// <summary>
 /// 新增或更改菜单
 /// </summary>
 public async Task CreateOrUpdateMenuAsync(CreateOrUpdateMenuInput input)
 {
     if (input.MenuEditDto.Id.HasValue)
     {
         await UpdateMenuAsync(input.MenuEditDto);
     }
     else
     {
         await CreateMenuAsync(input.MenuEditDto);
     }
 }
Exemple #2
0
        /// <summary>
        /// 新增或更改菜单
        /// </summary>
        public async Task CreateOrUpdateMenuAsync(CreateOrUpdateMenuInput input)
        {
            //权限配置
            var entity = input.MenuEditDto.MapTo <Menu>();
            var plist  = await _cachingAppService.GetPermissionCache();

            var sort = plist.Items.Count + 1;
            var page = plist.Items.First(c => c.Name.Equals("page"));

            if (input.MenuEditDto.ParentId.HasValue)
            {
                var parent = await _menuRepository.FirstOrDefaultAsync(input.MenuEditDto.ParentId.Value);

                page = plist.Items.First(c => c.Name.Equals(parent.RequiredPermissions));
            }
            var temp = $"{page.Name}.{entity.Name}";

            input.MenuEditDto.RequiredPermissions = temp;

            await ModifyMenuPermissions(entity, temp, page, sort, input.PermissionTypes);

            //if(!input.MenuEditDto.RequiresAuthentication)
            //{
            //    if (await _permissionRepository.CountAsync(c => c.Name.Contains(temp)) > 0)
            //    {
            //    await DeleteMenuPermissions(temp);
            //    }
            //}

            //菜单配置
            if (input.MenuEditDto.Id.HasValue)
            {
                await UpdateMenuAsync(input.MenuEditDto);
            }
            else
            {
                await CreateMenuAsync(input.MenuEditDto);
            }
            await _cachingAppService.ClearCache(new EntityDto <string>(SystemCacheName.MenuCache));
        }