当前位置: 首页>>代码示例>>C#>>正文


C# Department.GetAncestors方法代码示例

本文整理汇总了C#中Department.GetAncestors方法的典型用法代码示例。如果您正苦于以下问题:C# Department.GetAncestors方法的具体用法?C# Department.GetAncestors怎么用?C# Department.GetAncestors使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Department的用法示例。


在下文中一共展示了Department.GetAncestors方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: FindAllUserByDepartment

        /// <summary>
        /// 지정된 부서에 소속된 직원들을 반환합니다.
        /// </summary>
        /// <param name="department">부서</param>
        /// <param name="hierarchyContainsKind">부서의 조상/자손도 포함할 것인가 여부</param>
        /// <returns>부서 소속원 컬렉션을 반환한다.</returns>
        public IList<User> FindAllUserByDepartment(Department department, HierarchyContainsKinds hierarchyContainsKind)
        {
            department.ShouldNotBeNull("department");

            if(IsDebugEnabled)
                log.Debug(@"부서 소속 사원 정보를 가져옵니다. 부서의 상위 또는 하위 부서의 소속원들도 포함시킬 수 있습니다... " +
                          @"department={0}, hierarchyContainsKind={1}",
                          department, hierarchyContainsKind);

            // 중복 사용자를 피하기 위해 HashedSet을 사용합니다.
            var users = new HashSet<User>();

            // 1. 조상부서에 소속된 직원 정보)
            if((hierarchyContainsKind & HierarchyContainsKinds.Ancestors) > 0)
                department.GetAncestors().RunEach(dept => dept.GetUsers().RunEach(u => users.Add(u)));

            // 2. 현재부서에 소속된 직원 정보
            if((hierarchyContainsKind & HierarchyContainsKinds.Self) > 0)
                department.GetUsers().RunEach(u => users.Add(u));

            // 3. 자손부서에 소속된 직원 정보)
            if((hierarchyContainsKind & HierarchyContainsKinds.Descendents) > 0)
                department.GetDescendents().RunEach(dept => dept.GetUsers().RunEach(u => users.Add(u)));

            return users.ToList();
        }
开发者ID:debop,项目名称:NAccess,代码行数:32,代码来源:OrganizationRepository.User.cs

示例2: FindAllDepartmentByHierarchy

        /// <summary>
        /// 지정된 부서와 옵션에 따라 하위 부서 또는 상위부서를 포함한 부서정보를 제공합니다.
        /// </summary>
        /// <param name="department">조회할 기준 부서</param>
        /// <param name="hierarchyContainsKind">부서의 조상/자손도 포함할 것인가 여부</param>
        /// <returns></returns>
        public IList<Department> FindAllDepartmentByHierarchy(Department department, HierarchyContainsKinds hierarchyContainsKind)
        {
            // NOTE: 현재는 Loop 방식을 사용하여 round-trip이 많이 발생하게끔 되어 있다. Second Cache로 속도를 극복할 수 밖에 없다.

            if(IsDebugEnabled)
                log.Debug(@"계층구조에 따른 부서 정보를 조회합니다. department={0}, hierarchyContainsKind={1}",
                          department, hierarchyContainsKind);

            var results = new List<Department>();

            if(department == null)
                return results;

            // 1. 조상 부서 조회 및 추가
            if((hierarchyContainsKind & HierarchyContainsKinds.Ancestors) > 0)
                results.AddRange(department.GetAncestors());

            // 2. 현재 부서 추가
            if((hierarchyContainsKind & HierarchyContainsKinds.Self) > 0)
                results.Add(department);

            // 3. 자손 부서 조회 및 추가
            if((hierarchyContainsKind & HierarchyContainsKinds.Descendents) > 0)
                results.AddRange(department.GetDescendents());

            return results;
        }
开发者ID:debop,项目名称:NAccess,代码行数:33,代码来源:OrganizationRepository.Department.cs


注:本文中的Department.GetAncestors方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。