public async Task Create(CreateMenuInput input) { var menu = input.MapTo <Menu>(); var thisLevelMenuCount = await _menuRepository.GetCountAsync(p => p.ParentId == input.ParentId); if (menu.Mold == MenuMold.Top) { menu.Code = (thisLevelMenuCount + 1).ToString().PadRight(HeroConstants.CodeRuleRestrain.CodeCoverBit, HeroConstants.CodeRuleRestrain.CodeCoverSymbol); menu.Level = 1; } else { var parentMenu = await _menuRepository.SingleOrDefaultAsync(p => p.Id == input.ParentId); if (parentMenu == null) { throw new BusinessException($"不存在Id为{input.ParentId}的菜单信息"); } menu.Code = parentMenu.Code + HeroConstants.CodeRuleRestrain.CodeSeparator + (thisLevelMenuCount + 1).ToString().PadLeft(HeroConstants.CodeRuleRestrain.CodeCoverBit, HeroConstants.CodeRuleRestrain.CodeCoverSymbol); menu.Level = parentMenu.Level + 1; } var permission = input.MapTo <Permission>(); await UnitOfWorkAsync(async (conn, trans) => { var permissionId = await _permissionRepository.InsertAndGetIdAsync(permission, conn, trans); menu.PermissionId = permissionId; await _menuRepository.InsertAsync(menu, conn, trans); }, Connection); }
public async Task <string> CreateMenu(CreateMenuInput input) { input.CheckDataAnnotations().CheckValidResult(); var exsitMenu = await _menuRepository.SingleOrDefaultAsync(p => p.Code == input.Code); if (exsitMenu != null) { throw new BusinessException($"系统中已经存在Code为{input.Code}的菜单信息"); } var exsitPermission = await _permissionRepository.SingleOrDefaultAsync(p => p.Code == input.Code); if (exsitPermission != null) { throw new BusinessException($"系统中已经存在Code为{input.Code}的权限信息"); } var menu = input.MapTo <Menu>(); var permission = new Permission() { Code = input.Code, Name = input.Name, Memo = input.Memo, Mold = PermissionMold.Menu }; await _menuManager.CreateMenu(menu, permission); return("新增菜单成功"); }
public async Task <CreateMenuOutput> Create(CreateMenuInput input) { var menu = input.MapTo <Menu>(); long menuParentId = 0; var exsitMenu = await _menuRepository.FirstOrDefaultAsync(p => p.Name == input.Name); if (exsitMenu != null) { throw new BusinessException($"系统中已经存在{input.Name}的菜单,请勿重复添加"); } if (menu.Mold == MenuMold.Top) { var thisLevelMenuCount = await _menuRepository.GetCountAsync(p => p.Mold == MenuMold.Top); menu.Code = (thisLevelMenuCount + 1).ToString().PadRight(HeroConstants.CodeRuleRestrain.CodeCoverBit, HeroConstants.CodeRuleRestrain.CodeCoverSymbol); menu.Level = 1; } else { var parentMenu = await _menuRepository.SingleOrDefaultAsync(p => p.PermissionId == input.ParentPermissionId); if (parentMenu == null) { throw new BusinessException($"不存在PermissionId为{input.ParentPermissionId}的菜单信息"); } menuParentId = parentMenu.Id; var thisLevelMenuCount = await _menuRepository.GetCountAsync(p => p.Mold == MenuMold.SubMenu && p.ParentId == parentMenu.Id); menu.Code = parentMenu.Code + HeroConstants.CodeRuleRestrain.CodeSeparator + (thisLevelMenuCount + 1).ToString().PadLeft(HeroConstants.CodeRuleRestrain.CodeCoverBit, HeroConstants.CodeRuleRestrain.CodeCoverSymbol); menu.Level = parentMenu.Level + 1; } var permission = input.MapTo <Permission>(); await UnitOfWorkAsync(async (conn, trans) => { var permissionId = await _permissionRepository.InsertAndGetIdAsync(permission, conn, trans); menu.PermissionId = permissionId; menu.ParentId = menuParentId; await _menuRepository.InsertAsync(menu, conn, trans); }, Connection); return(new CreateMenuOutput() { Id = menu.Id, PermissionId = menu.PermissionId, Tips = "新增菜单成功" }); }
public async Task <MenuDto> CreateSystemMenu(CreateMenuInput input) { var menu = input.MapTo <Menu>(); menu.IsSystem = true; menu.Target = "_self"; _menuRepository.Insert(menu); await CurrentUnitOfWork.SaveChangesAsync(); await RebuildMenu(); return(menu.MapTo <MenuDto>()); }
public async Task <MenuDto> CreateCustomMenu(CreateMenuInput input) { await CheckNameRepeat(input.DisplayName); var menu = input.MapTo <Menu>(); menu.IsSystem = false; menu.Target = "_blank"; _menuRepository.Insert(menu); await CurrentUnitOfWork.SaveChangesAsync(); await RebuildMenu(); return(menu.MapTo <MenuDto>()); }