Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        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)));
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
 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));
 }