added counting users with filter

This commit is contained in:
Maksim Chegulov 2023-08-01 12:47:33 +03:00
parent 4889105f6c
commit 03b68b4ccd
4 changed files with 57 additions and 0 deletions

View File

@ -181,6 +181,20 @@ public class CachedUserService : IUserService, ICachedService
CacheUserGroupRefItem = userServiceCache.CacheUserGroupRefItem;
}
public Task<int> GetUsersCountAsync(
int tenant,
bool isDocSpaceAdmin,
EmployeeStatus? employeeStatus,
List<List<Guid>> includeGroups,
List<Guid> excludeGroups,
List<Tuple<List<List<Guid>>, List<Guid>>> combinedGroups,
EmployeeActivationStatus? activationStatus,
AccountLoginType? accountLoginType,
string text)
{
return Service.GetUsersCountAsync(tenant, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, combinedGroups, activationStatus, accountLoginType, text);
}
public IAsyncEnumerable<UserInfo> GetUsers(
int tenant,
bool isDocSpaceAdmin,

View File

@ -180,6 +180,19 @@ public class UserManager
return await users.ToArrayAsync();
}
public Task<int> GetUsersCountAsync(
bool isDocSpaceAdmin,
EmployeeStatus? employeeStatus,
List<List<Guid>> includeGroups,
List<Guid> excludeGroups,
List<Tuple<List<List<Guid>>, List<Guid>>> combinedGroups,
EmployeeActivationStatus? activationStatus,
AccountLoginType? accountLoginType,
string text)
{
return _userService.GetUsersCountAsync(Tenant.Id, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, combinedGroups, activationStatus, accountLoginType, text);
}
public IAsyncEnumerable<UserInfo> GetUsers(
bool isDocSpaceAdmin,

View File

@ -30,6 +30,16 @@ namespace ASC.Core;
public interface IUserService
{
Task<IEnumerable<UserInfo>> GetUsersAsync(int tenant);
Task<int> GetUsersCountAsync(
int tenant,
bool isDocSpaceAdmin,
EmployeeStatus? employeeStatus,
List<List<Guid>> includeGroups,
List<Guid> excludeGroups,
List<Tuple<List<List<Guid>>, List<Guid>>> combinedGroups,
EmployeeActivationStatus? activationStatus,
AccountLoginType? accountLoginType,
string text);
IAsyncEnumerable<UserInfo> GetUsers(
int tenant,
bool isDocSpaceAdmin,

View File

@ -237,6 +237,26 @@ public class EFUserService : IUserService
.ToListAsync();
}
public async Task<int> GetUsersCountAsync(
int tenant,
bool isDocSpaceAdmin,
EmployeeStatus? employeeStatus,
List<List<Guid>> includeGroups,
List<Guid> excludeGroups,
List<Tuple<List<List<Guid>>, List<Guid>>> combinedGroups,
EmployeeActivationStatus? activationStatus,
AccountLoginType? accountLoginType,
string text)
{
await using var userDbContext = _dbContextFactory.CreateDbContext();
var q = GetUserQuery(userDbContext, tenant);
q = GetUserQueryForFilter(userDbContext, q, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, combinedGroups, activationStatus, accountLoginType, text);
return await q.CountAsync();
}
public async IAsyncEnumerable<UserInfo> GetUsers(
int tenant,
bool isDocSpaceAdmin,