public async Task <AppSrvResult <long> > Add(MenuSaveInputDto saveDto) { var isExistsCode = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.Code).Any(); if (isExistsCode) { return(Problem(HttpStatusCode.Forbidden, "该菜单编码已经存在")); } var isExistsName = (await this.GetAllMenusFromCache()).Where(x => x.Name == saveDto.Name).Any(); if (isExistsName) { return(Problem(HttpStatusCode.Forbidden, "该菜单名称已经存在")); } var parentMenu = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.PCode).FirstOrDefault(); var addDto = ProducePCodes(saveDto, parentMenu); var menu = _mapper.Map <SysMenu>(addDto); menu.ID = IdGenerater.GetNextId(); await _menuRepository.InsertAsync(menu); return(menu.ID); }
private MenuSaveInputDto ProducePCodes(MenuSaveInputDto saveDto, MenuDto parentMenuDto) { if (saveDto.PCode.IsNullOrWhiteSpace() || saveDto.PCode.EqualsIgnoreCase("0")) { saveDto.PCode = "0"; saveDto.PCodes = "[0],"; saveDto.Levels = 1; return(saveDto); } saveDto.Levels = parentMenuDto.Levels + 1; saveDto.PCodes = $"{parentMenuDto.PCodes}[{parentMenuDto.Code}]"; return(saveDto); }
public async Task Save(MenuSaveInputDto saveDto) { if (saveDto.ID < 1) { if (await _menuRepository.ExistAsync(x => x.Code == saveDto.Code)) { throw new BusinessException(new ErrorModel(ErrorCode.Forbidden, "同名菜单已存在")); } saveDto.Status = true; } if (string.IsNullOrWhiteSpace(saveDto.PCode) || string.Equals(saveDto.PCode, "0")) { saveDto.PCode = "0"; saveDto.PCodes = "[0],"; saveDto.Levels = 1; } else { var parentMenu = await _menuRepository.FetchAsync(m => new { m.Code, m.PCodes, m.Levels }, x => x.Code == saveDto.PCode); saveDto.PCode = parentMenu.Code; if (string.Equals(saveDto.Code, saveDto.PCode)) { throw new BusinessException(new ErrorModel(ErrorCode.Forbidden, "菜单编码冲突")); } saveDto.Levels = parentMenu.Levels + 1; saveDto.PCodes = $"{parentMenu.PCodes}[{parentMenu.Code}]"; } var menu = _mapper.Map <SysMenu>(saveDto); if (menu.ID == 0) { menu.ID = IdGenerater.GetNextId(); await _menuRepository.InsertAsync(menu); } else { await _menuRepository.UpdateAsync(menu); } }
public async Task <AppSrvResult> Update(MenuSaveInputDto saveDto) { var isExistsCode = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.Code && x.ID != saveDto.ID).Any(); if (isExistsCode) { return(Problem(HttpStatusCode.BadRequest, "该菜单编码已经存在")); } var isExistsName = (await this.GetAllMenusFromCache()).Where(x => x.Name == saveDto.Name && x.ID != saveDto.ID).Any(); if (isExistsName) { return(Problem(HttpStatusCode.BadRequest, "该菜单名称已经存在")); } var parentMenu = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.PCode).FirstOrDefault(); var updateDto = ProducePCodes(saveDto, parentMenu); var menu = _mapper.Map <SysMenu>(updateDto); await _menuRepository.UpdateAsync(menu); return(DefaultResult()); }
public async Task SaveMenu([FromBody] MenuSaveInputDto menuDto) { await _menuService.Save(menuDto); }
public async Task <ActionResult> Update([FromBody] MenuSaveInputDto menuDto) { return(Result(await _menuService.Update(menuDto))); }
public async Task <ActionResult <long> > Add([FromBody] MenuSaveInputDto menuDto) { return(CreatedResult(await _menuService.Add(menuDto))); }
public async Task Save(MenuSaveInputDto saveDto) { //新增 if (saveDto.ID < 1) { var isExistsCode = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.Code).Any(); if (isExistsCode) { throw new BusinessException(new ErrorModel(HttpStatusCode.Forbidden, "该菜单编码已经存在")); } var isExistsName = (await this.GetAllMenusFromCache()).Where(x => x.Name == saveDto.Name).Any(); if (isExistsName) { throw new BusinessException(new ErrorModel(HttpStatusCode.Forbidden, "该菜单名称已经存在")); } } //修改 else { var isExistsCode = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.Code && x.ID != saveDto.ID).Any(); if (isExistsCode) { throw new BusinessException(new ErrorModel(HttpStatusCode.Forbidden, "该菜单编码已经存在")); } var isExistsName = (await this.GetAllMenusFromCache()).Where(x => x.Name == saveDto.Name && x.ID != saveDto.ID).Any(); if (isExistsName) { throw new BusinessException(new ErrorModel(HttpStatusCode.Forbidden, "该菜单名称已经存在")); } } //父节点处理 if (saveDto.PCode.IsNullOrWhiteSpace() || saveDto.PCode.EqualsIgnoreCase("0")) { saveDto.PCode = "0"; saveDto.PCodes = "[0],"; saveDto.Levels = 1; } else { var parentMenu = (await this.GetAllMenusFromCache()).Where(x => x.Code == saveDto.PCode).FirstOrDefault(); saveDto.PCode = parentMenu.Code; if (saveDto.Code.EqualsIgnoreCase(parentMenu.Code)) { throw new BusinessException(new ErrorModel(HttpStatusCode.Forbidden, "菜单编码冲突")); } saveDto.Levels = parentMenu.Levels + 1; saveDto.PCodes = $"{parentMenu.PCodes}[{parentMenu.Code}]"; } //保存 var menu = _mapper.Map <SysMenu>(saveDto); if (saveDto.ID < 1) { menu.ID = IdGenerater.GetNextId(); await _menuRepository.InsertAsync(menu); } else { await _menuRepository.UpdateAsync(menu); } }