Browse Source

Added count to user lookup

pull/4016/head
Halil İbrahim Kalkan 7 years ago
parent
commit
48cf71c059
  1. 2
      modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserLookupAppService.cs
  2. 7
      modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UserLookupCountInputDto.cs
  3. 4
      modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UserLookupSearchInputDto.cs
  4. 5
      modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserLookupAppService.cs
  5. 7
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExternalUserLookupServiceProvider.cs
  6. 13
      modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientIdentityUserLookupService.cs
  7. 7
      modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserLookupController.cs
  8. 5
      modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/IExternalUserLookupServiceProvider.cs
  9. 14
      modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/IUserLookupService.cs
  10. 4
      modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/IUserRepository.cs
  11. 20
      modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/UserLookupService.cs
  12. 16
      modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo/Abp/Users/EntityFrameworkCore/EfCoreAbpUserRepositoryBase.cs
  13. 15
      modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs

2
modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserLookupAppService.cs

@ -13,5 +13,7 @@ namespace Volo.Abp.Identity
Task<UserData> FindByUserNameAsync(string userName);
Task<ListResultDto<UserData>> SearchAsync(UserLookupSearchInputDto input);
Task<long> GetCountAsync(UserLookupCountInputDto input);
}
}

7
modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UserLookupCountInputDto.cs

@ -0,0 +1,7 @@
namespace Volo.Abp.Identity
{
public class UserLookupCountInputDto
{
public string Filter { get; set; }
}
}

4
modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UserLookupSearchInputDto.cs

@ -2,10 +2,8 @@
namespace Volo.Abp.Identity
{
public class UserLookupSearchInputDto : PagedResultRequestDto, ISortedResultRequest
public class UserLookupSearchInputDto : PagedAndSortedResultRequestDto
{
public string Sorting { get; set; }
public string Filter { get; set; }
}
}

5
modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserLookupAppService.cs

@ -55,5 +55,10 @@ namespace Volo.Abp.Identity
.ToList()
);
}
public async Task<long> GetCountAsync(UserLookupCountInputDto input)
{
return await UserLookupServiceProvider.GetCountAsync(input.Filter);
}
}
}

7
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExternalUserLookupServiceProvider.cs

@ -66,5 +66,12 @@ namespace Volo.Abp.Identity
return users.Select(u => u.ToAbpUserData()).ToList();
}
public async Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = new CancellationToken())
{
return await UserRepository.GetCountAsync(filter, cancellationToken);
}
}
}

13
modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientIdentityUserLookupService.cs

@ -47,5 +47,18 @@ namespace Volo.Abp.Identity
return result.Items.Cast<IUserData>().ToList();
}
public async Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = new CancellationToken())
{
return await UserLookupAppService
.GetCountAsync(
new UserLookupCountInputDto
{
Filter = filter
}
);
}
}
}

7
modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserLookupController.cs

@ -40,5 +40,12 @@ namespace Volo.Abp.Identity
{
return LookupAppService.SearchAsync(input);
}
[HttpGet]
[Route("count")]
public Task<long> GetCountAsync(UserLookupCountInputDto input)
{
return LookupAppService.GetCountAsync(input);
}
}
}

5
modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/IExternalUserLookupServiceProvider.cs

@ -17,5 +17,10 @@ namespace Volo.Abp.Users
int maxResultCount = int.MaxValue,
int skipCount = 0,
CancellationToken cancellationToken = default);
Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default
);
}
}

14
modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/IUserLookupService.cs

@ -8,9 +8,15 @@ namespace Volo.Abp.Users
public interface IUserLookupService<TUser>
where TUser : class, IUser
{
Task<TUser> FindByIdAsync(Guid id, CancellationToken cancellationToken = default);
Task<TUser> FindByIdAsync(
Guid id,
CancellationToken cancellationToken = default
);
Task<TUser> FindByUserNameAsync(string userName, CancellationToken cancellationToken = default);
Task<TUser> FindByUserNameAsync(
string userName,
CancellationToken cancellationToken = default
);
Task<List<IUserData>> SearchAsync(
string sorting = null,
@ -18,5 +24,9 @@ namespace Volo.Abp.Users
int maxResultCount = int.MaxValue,
int skipCount = 0,
CancellationToken cancellationToken = default);
Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default);
}
}

4
modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/IUserRepository.cs

@ -21,5 +21,9 @@ namespace Volo.Abp.Users
string filter = null,
CancellationToken cancellationToken = default
);
Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default);
}
}

20
modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/UserLookupService.cs

@ -173,6 +173,26 @@ namespace Volo.Abp.Users
.ToList();
}
public async Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default)
{
if (ExternalUserLookupServiceProvider != null)
{
return await ExternalUserLookupServiceProvider
.GetCountAsync(
filter,
cancellationToken
);
}
return await _userRepository
.GetCountAsync(
filter,
cancellationToken
);
}
protected abstract TUser CreateUser(IUserData externalUser);
private async Task WithNewUowAsync(Func<Task> func)

16
modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo/Abp/Users/EntityFrameworkCore/EfCoreAbpUserRepositoryBase.cs

@ -50,5 +50,21 @@ namespace Volo.Abp.Users.EntityFrameworkCore
.PageBy(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default)
{
return await DbSet
.WhereIf(
!filter.IsNullOrWhiteSpace(),
u =>
u.UserName.Contains(filter) ||
u.Email.Contains(filter) ||
u.Name.Contains(filter) ||
u.Surname.Contains(filter)
)
.CountAsync(GetCancellationToken(cancellationToken));
}
}
}

15
modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs

@ -52,5 +52,20 @@ namespace Volo.Abp.Users.MongoDB
.PageBy<TUser, IMongoQueryable<TUser>>(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task<long> GetCountAsync(string filter = null, CancellationToken cancellationToken = default)
{
return await GetMongoQueryable()
.WhereIf<TUser, IMongoQueryable<TUser>>(
!filter.IsNullOrWhiteSpace(),
u =>
u.UserName.Contains(filter) ||
u.Email.Contains(filter) ||
u.Name.Contains(filter) ||
u.Surname.Contains(filter)
)
.As<IMongoQueryable<TUser>>()
.CountAsync(GetCancellationToken(cancellationToken));
}
}
}
Loading…
Cancel
Save