private void getDepUsers(Department department, Action<UserInfo> afterRetrivedUserInfo) { var userXml = RootObj.DeptManager.GetDeptUsers(department.FullPath); XDocument.Parse(userXml) .Element("Users") .Descendants("User").Select(x => { var acct = x.Attribute("Name").Value; var userInfo = getRtxUserInfo(acct); userInfo.DepartMentFullName = department.FullPath; userInfo.DepartMentName = department.Name; if (afterRetrivedUserInfo != null) { afterRetrivedUserInfo(userInfo); } return userInfo; }).ToList(); if (department.ChildDepartments != null && department.ChildDepartments.Count > 0) { department.ChildDepartments.ForEach(x => { getDepUsers(x, afterRetrivedUserInfo); }); } }
private List<Department> getChildDepartment(Department department) { var childDepXml = RootObj.DeptManager.GetChildDepts(department.FullPath); var childDeps = getXmlDepartments(childDepXml); if (childDeps != null) { childDeps.ForEach(x => { x.FullPath = department.FullPath + "\\" + x.Name; x.ChildDepartments = getChildDepartment(x); }); } return childDeps; }