コード例 #1
0
ファイル: DeptAppService.cs プロジェクト: yuyixiaoxiang/Adnc
        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());
        }
コード例 #2
0
ファイル: DeptAppService.cs プロジェクト: lurudong/Adnc
        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);
                //});
            }
        }