/// <summary> /// 运维专用:获取指定租户的全部管理员用户 /// </summary> /// <param name="tenantId"></param> /// <returns></returns> public async Task <PagedResultDto <UserDto> > GetAllAdminUserInTenantAsync(int tenantId, PagedAdminUserResultRequestDto input) { using (CurrentUnitOfWork.SetTenantId(tenantId)) { var adminRole = await _roleManager.GetRoleByNameAsync(StaticRoleNames.Tenants.Admin); IList <User> adminUsers = await _userManager.GetUsersInRoleAsync(adminRole.Name); if (!string.IsNullOrEmpty(input.Keyword)) { adminUsers = adminUsers.Where( u => u.UserName.Contains(input.Keyword) || u.Name.Contains(input.Keyword) || u.EmailAddress.Contains(input.Keyword)).ToList(); } if (input.IsActive.HasValue) { adminUsers = adminUsers.Where(u => u.IsActive == input.IsActive.Value).ToList(); } int totalCount = adminUsers.Count; var query = adminUsers.AsQueryable(); query = PagingHelper.ApplySorting <User, long>(query, new PagedAndSortedResultRequestDto() { Sorting = "CreationTime DESC" }); query = PagingHelper.ApplyPaging <User, long>(query, input); adminUsers = query.ToList(); List <UserDto> userDtos = new List <UserDto>(); foreach (User adminUser in adminUsers) { UserDto userDto = ObjectMapper.Map <UserDto>(adminUser); userDto.OrgUnitNames = await _userManager.GetOrgUnitsOfUserAsync(adminUser); userDto.RoleNames = await _userManager.GetRolesOfUserAsync(adminUser); userDto.IsAdmin = userDto.RoleNames.Contains("Admin"); userDto.Permissions = await _userManager.GetPermissionsOfUserAsync(adminUser); userDtos.Add(userDto); } return(new PagedResultDto <UserDto>(totalCount, userDtos)); } }
/// <summary> /// 运维专用:获取指定租户的所有角色 /// </summary> /// <param name="tenantId"></param> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <RoleDto> > GetAllRolesInTenantAsync(int tenantId, PagedRoleResultRequestDto input) { using (CurrentUnitOfWork.SetTenantId(tenantId)) { var query = _roleManager.Roles; var totalCount = await _roleManager.Roles.CountAsync(); query = PagingHelper.ApplySorting <Role, int>(query, input); query = PagingHelper.ApplyPaging <Role, int>(query, input); var entities = await query.ToListAsync(); return(new PagedResultDto <RoleDto>(totalCount, entities.Select( r => ObjectMapper.Map <RoleDto>(r)).ToList() )); } }
/// <summary> /// 获取当前租户下的全部组织 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <OrgUnitDto> > GetAllAsync(PagedResultRequestDto input) { var query = _orgUnitRepository.GetAll(); var totalCount = await _orgUnitRepository.CountAsync(); query = PagingHelper.ApplySorting <OrganizationUnit, long>(query, input); query = PagingHelper.ApplyPaging <OrganizationUnit, long>(query, input); var entities = await query.ToListAsync(); List <OrgUnitDto> orgUnitDtos = new List <OrgUnitDto>(); foreach (OrganizationUnit orgUnit in entities) { orgUnitDtos.Add(await GenerateOrgUnitDtoAsync(orgUnit)); } return(new PagedResultDto <OrgUnitDto>(totalCount, orgUnitDtos)); }