public async Task <AppSrvResult> Update(DeptSaveInputDto saveDto) { var oldDeptDto = (await GetAllFromCache()).FirstOrDefault(x => x.ID == saveDto.ID); if (oldDeptDto.Pid == 0 && saveDto.Pid > 0) { return(Problem(HttpStatusCode.BadRequest, "一级单位不能修改等级")); } var isExists = (await GetAllFromCache()).Exists(x => x.FullName == saveDto.FullName && x.ID != saveDto.ID); if (isExists) { return(Problem(HttpStatusCode.BadRequest, "该部门全称已经存在")); } var oldPids = oldDeptDto.Pids; var deptEnity = _mapper.Map <SysDept>(saveDto); if (oldDeptDto.Pid == saveDto.Pid) { await _deptRepository.UpdateAsync(deptEnity); } else { await this.SetDeptPids(deptEnity); await _usrManagerService.UpdateDept(oldPids, deptEnity); } return(DefaultResult()); }
public async Task Save(DeptSaveInputDto saveDto) { if (saveDto.FullName.IsNullOrWhiteSpace()) { throw new BusinessException(new ErrorModel(HttpStatusCode.BadRequest, "请输入部门全称")); } if (saveDto.SimpleName.IsNullOrWhiteSpace()) { throw new BusinessException(new ErrorModel(HttpStatusCode.BadRequest, "请输入部门简称")); } if (saveDto.ID == 0) { var dept = _mapper.Map <SysDept>(saveDto); dept.ID = IdGenerater.GetNextId(); await this.SetDeptPids(dept); await _deptRepository.InsertAsync(dept); } else { var dept = await _deptRepository.FetchAsync(d => d, x => x.ID == saveDto.ID); if (dept.Pid == 0 && saveDto.Pid > 0) { throw new BusinessException(new ErrorModel(HttpStatusCode.BadRequest, "一级单位不能修改等级")); } var oldPids = dept.Pids; dept.SimpleName = saveDto.SimpleName; dept.FullName = saveDto.FullName; dept.Num = saveDto.Num; dept.Tips = saveDto.Tips; if (dept.Pid == saveDto.Pid) { await _deptRepository.UpdateAsync(dept); } else { dept.Pid = saveDto.Pid; await this.SetDeptPids(dept); await _usrManagerService.UpdateDept(oldPids, dept); } //var subDetps = _deptRepository.GetAll().Where(d => d.Pids.Contains($"[{dept.ID}]")).ToList(); //subDetps.ForEach(c => //{ // c.Pids = c.Pids.Replace(oldPids,dept.Pids); //}); } }