private List <GetOrganizationUnitsAndUsersOutput> GetOrganizationUnitsAndUsersChildren(GetOrganizationUnitsAndUsersOutput item, List <GetOrganizationUnitsAndUsersOutput> output) { var data = _organizationUnitRepository.GetAll().Where(r => r.ParentId == item.OrganizationId); foreach (var itemc in data) { GetOrganizationUnitsAndUsersOutput list = new GetOrganizationUnitsAndUsersOutput(); var userData = (from a in UserManager.Users join b in _userOrganizationUnitRepository.GetAll().AsNoTracking() on a.Id equals b.UserId where b.OrganizationUnitId == itemc.Id select new OrganizationUsers { UserId = int.Parse(a.Id.ToString()), UserName = a.UserName, Name = a.Name }).ToList(); list.OrganizationId = int.Parse(itemc.Id.ToString()); list.OrganizationName = itemc.DisplayName; list.OrganizationUsers = userData; list.Children = GetOrganizationUnitsAndUsersChildren(list, output).ToArray(); output.Add(list); } return(output); }
public async Task <GetOrganizationUnitsAndUsersOutput[]> GetOrganizationUnitsAndUsers() { List <GetOrganizationUnitsAndUsersOutput> output = new List <GetOrganizationUnitsAndUsersOutput>(); var data = _organizationUnitRepository.GetAll().Where(r => r.ParentId == null); foreach (var item in data) { //获取组织架构下的人员 var userData = (from a in UserManager.Users join b in _userOrganizationUnitRepository.GetAll().AsNoTracking() on a.Id equals b.UserId where b.OrganizationUnitId == item.Id select new OrganizationUsers { UserId = int.Parse(a.Id.ToString()), UserName = a.UserName, Name = a.Name }).ToList(); var da = new GetOrganizationUnitsAndUsersOutput { OrganizationUsers = userData, OrganizationId = int.Parse(item.Id.ToString()), OrganizationName = item.DisplayName }; da.Children = GetOrganizationUnitsAndUsersChildren(da, new List <GetOrganizationUnitsAndUsersOutput>()).ToArray(); output.Add(da); } return(output.ToArray()); }