public static OrganizationHierarchyType CreateOrganizationHierarchyType(string name) { OrganizationHierarchyType organizationHierarchyType = new OrganizationHierarchyType(); organizationHierarchyType.Name = name; return(organizationHierarchyType); }
public void AddOrganizationHierarchy(Organization parent,Organization child,OrganizationHierarchyType organizationHierarchyType) { Guard.Against<ArgumentNullException>(_organizationHierarchyRepository == null, "建構式需指定repository"); OrganizationHierarchy organizationHierarchy = new OrganizationHierarchy() { Level = 1, ParentOrganizationId = parent.Id, ChildOrganizationId = child.Id, OrganizationHierarchyType = organizationHierarchyType }; _organizationHierarchyRepository.SaveOrUpdate(organizationHierarchy); ISpecification<OrganizationHierarchy> specFindParents = new Specification<OrganizationHierarchy>( s => s.ChildOrganizationId == parent.Id && s.OrganizationHierarchyType == organizationHierarchyType); IList<OrganizationHierarchy> allParents = _organizationHierarchyRepository.Query(specFindParents); foreach(var up in allParents) { OrganizationHierarchy hierarchy = new OrganizationHierarchy() { Level = up.Level + 1, ParentOrganizationId = up.ParentOrganizationId, ChildOrganizationId = child.Id, OrganizationHierarchyType = organizationHierarchyType }; _organizationHierarchyRepository.SaveOrUpdate(hierarchy); } }