public BaseResponse <PositionOutputDto> Update(Guid id, PositionInputDto positionInputDto) { var position = First(x => x.EntityStatus == EntityStatus.Activated && x.Id == id); position.Name = positionInputDto.Name; var isSaved = Update(position); if (!isSaved) { throw new InternalServerErrorException(string.Format(Error.CreateError, positionInputDto.Name)); } return(new SuccessResponse <PositionOutputDto>(Mapper.Map <PositionOutputDto>(position))); }
public BaseResponse <PositionOutputDto> Create(PositionInputDto positionInputDto) { if (Contains(x => x.EntityStatus == EntityStatus.Activated && x.Name.Equals(positionInputDto.Name, StringComparison.InvariantCultureIgnoreCase))) { throw new BadRequestException($"Position {positionInputDto.Name} is already existed"); } var skill = Create(Mapper.Map <Position>(positionInputDto), out var isSaved); if (!isSaved) { throw new InternalServerErrorException(string.Format(Error.CreateError, positionInputDto.Name)); } return(new SuccessResponse <PositionOutputDto>(Mapper.Map <PositionOutputDto>(skill))); }
public void SubmitForm(PositionInputDto positionInputDto, string keyValue) { Position position = new Position(); if (!string.IsNullOrEmpty(keyValue)) { var id = Convert.ToInt64(keyValue); position = positionRepository.Get(id); AutoMapper.Mapper.Map <PositionInputDto, Position>(positionInputDto, position); position.LastModificationTime = DateTime.Now; positionRepository.Update(position); } else { AutoMapper.Mapper.Map <PositionInputDto, Position>(positionInputDto, position); position.Id = IdWorkerHelper.GenId64(); position.CreationTime = DateTime.Now; position.CreatorUserId = 1; positionRepository.Add(position); } }
public virtual int AddPosition(PositionInputDto PositionInputDto) { // 判断名称是否重复 if (_defaultDbContext.MbpPositions.Where(d => d.PositionName == PositionInputDto.PositionName).Any()) { throw new Exception("岗位名称重复"); } var parentPosition = _defaultDbContext.MbpPositions.Where(m => m.Id == PositionInputDto.ParentId).FirstOrDefault(); PositionInputDto.ParentPositionCode = parentPosition.PositionCode; PositionInputDto.FullPositionName = parentPosition.FullPositionName + "/" + PositionInputDto.PositionName; PositionInputDto.ParentPositionName = parentPosition.PositionName; var Position = _mapper.Map <MbpPosition>(PositionInputDto); Position.SystemCode = "Mbp"; Position.Level = parentPosition.Level + 1; _defaultDbContext.MbpPositions.Add(Position); return(_defaultDbContext.SaveChanges()); }
public virtual int UpdatePosition(PositionInputDto PositionInputDto) { var Position = _mapper.Map <MbpPosition>(PositionInputDto); // 重新继承父级信息, todo优化 可以将此逻辑放到实体里面,当作领域逻辑 var parentPosition = _defaultDbContext.MbpPositions.Where(m => m.Id == PositionInputDto.ParentId).FirstOrDefault(); // 判断选择的上级是不是自己的下级岗位,这种选择是不合理的 if (parentPosition.FullPositionName.StartsWith(Position.FullPositionName)) { throw new Exception("不能使用当前下级岗位作为父级岗位"); } // 刷新节点信息 { // 刷新当前节点 Position.SystemCode = parentPosition.SystemCode; Position.FullPositionName = string.Concat(parentPosition.FullPositionName, "/", Position.PositionName); Position.Level = parentPosition.Level + 1; Position.ParentPositionCode = parentPosition.PositionCode; Position.ParentPositionName = parentPosition.PositionName; _defaultDbContext.Attach(Position); // 刷新下级节点 var current = _defaultDbContext.MbpPositions.Include("ChildrenPosition.ChildrenPosition.ChildrenPosition.ChildrenPosition.ChildrenPosition") .First(m => m.Id == Position.Id); RefreshChildrenInfo(Position, current.ChildrenPosition); _defaultDbContext.Attach(current); } _defaultDbContext.Update(Position); // 提交所有修改 return(_defaultDbContext.SaveChanges()); }
public ActionResult SubmitForm(PositionInputDto positionInputDto, string keyValue) { _positionService.SubmitForm(positionInputDto, keyValue); return(Success("操作成功。")); }
public BaseResponse <PositionOutputDto> Update(Guid id, [FromBody] PositionInputDto position) { return(_positionService.Update(id, position)); }
public BaseResponse <PositionOutputDto> Create([FromBody] PositionInputDto position) { return(_positionService.Create(position)); }