コード例 #1
0
        /// <summary>
        /// 获取职务隶属的组织机构
        /// </summary>
        /// <param name="positionId">职务ID</param>
        /// <returns>从根机构开始的链</returns>
        public List <BusinessObjects.AuthorizationDS.OrganizationUnitRow> GetParentOUsOfPosition(int positionId)
        {
            List <BusinessObjects.AuthorizationDS.OrganizationUnitRow> result = new List <AuthorizationDS.OrganizationUnitRow>();
            int ouId = DS.Position.FindByPositionId(positionId).OrganizationUnitId;

            BusinessObjects.AuthorizationDS.OrganizationUnitRow row = DS.OrganizationUnit.FindByOrganizationUnitId(ouId);
            while (row != null)
            {
                result.Insert(0, row);
                row = row.OrganizationUnitRowParent;
            }
            return(result);
        }
コード例 #2
0
        public string GetOUNamesOfPosition(int positionId)
        {
            StringBuilder result = new StringBuilder();
            int           ouId   = DS.Position.FindByPositionId(positionId).OrganizationUnitId;

            BusinessObjects.AuthorizationDS.OrganizationUnitRow row = DS.OrganizationUnit.FindByOrganizationUnitId(ouId);
            while (row != null)
            {
                result.Insert(0, row.OrganizationUnitName + "-");
                row = row.OrganizationUnitRowParent;
            }
            return(result.ToString());
        }
コード例 #3
0
        /// <summary>
        /// 构建机构的机构路径
        /// </summary>
        /// <param name="ou"></param>
        public void BuildOUOrganizationTreePath(BusinessObjects.AuthorizationDS.OrganizationUnitRow ou)
        {
            StringBuilder path = new StringBuilder();

            AuthorizationDS.OrganizationUnitRow parent = ou.OrganizationUnitRowParent;
            if (parent != null)
            {
                path.Append(parent.OrganizationTreePath);
                path.Append("P" + parent.OrganizationUnitId + "P ");
            }
            ou.OrganizationTreePath = path.ToString();
            this.OrganizationUnitTA.Update(ou);

            foreach (BusinessObjects.AuthorizationDS.PositionRow position in ou.GetPositionRows())
            {
                BuildPositionOrganizationTreePath(position);
            }

            foreach (AuthorizationDS.OrganizationUnitRow childOU in ou.GetOrganizationUnitRows())
            {
                BuildOUOrganizationTreePath(childOU);
            }
        }