예제 #1
0
        public PositionInfo Create(string operationUserId, PositionCreateInfo createInfo)
        {
            User     opUser   = this.OrganizationManager.UserManager.GetUserById(operationUserId);
            Position position = this.OrganizationManager.PositionManager.Create(opUser, createInfo, OrganizationType.Position);

            return(position.MapPositionInfo());
        }
예제 #2
0
        public Position Create(User operationUser, PositionCreateInfo createInfo, OrganizationType positionType)
        {
            lock (this._updateLockObject)
            {
                if (operationUser == null)
                {
                    throw new ArgumentNullException("operationUser");
                }
                if (string.IsNullOrWhiteSpace(createInfo.Name))
                {
                    throw new OrganizationException("createInfo.Name不能为空!");
                }

                List <Position> positions = this._Positions;
                Position        parent    = this.GetPositionById(createInfo.ParentId);
                if (parent != null)
                {
                    Position child = parent.Children.FirstOrDefault(x => x.Name == createInfo.Name);
                    if (child != null)
                    {
                        throw new PositionNameReapeatException();
                    }
                }

                CreatedEventArgs <PositionCreateInfo, Position> args = new CreatedEventArgs <PositionCreateInfo, Position>
                {
                    CreateInfo = createInfo,
                    Operator   = operationUser
                };
                if (this.Creating != null)
                {
                    this.Creating(this, createInfo);
                }

                Position position = new Position(Guid.NewGuid().ToString(), createInfo.Name, createInfo.ParentId, createInfo.Remark, this._orgMnger);

                List <Position> tempPositions = positions.ToList();
                tempPositions.Add(position);
                this._positions = tempPositions;

                this.IndexPosition();
                if (this.Created != null)
                {
                    this.Created(this, position);
                }
                return(position);
            }
        }
예제 #3
0
 /// <summary>
 /// 创建职位
 /// </summary>
 /// <param name="position">职位</param>
 /// <returns>职位</returns>
 public Position Create(User operationUser, PositionCreateInfo createInfo)
 {
     return(this.Create(operationUser, createInfo, OrganizationType.Position));
 }