From 0025cea715a413267e11bb38c4ad019f5b5413e2 Mon Sep 17 00:00:00 2001 From: malik masis Date: Fri, 25 Nov 2022 20:43:02 +0300 Subject: [PATCH] Added new parameters for repositories --- .../Abp/Identity/IIdentityUserRepository.cs | 18 ++++++++ .../EfCoreIdentityUserRepository.cs | 44 ++++++++++++++++-- .../MongoDB/MongoIdentityUserRepository.cs | 46 +++++++++++++++++-- 3 files changed, 99 insertions(+), 9 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs index 9729d03129..f026492f5a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs @@ -61,8 +61,17 @@ public interface IIdentityUserRepository : IBasicRepository string userName = null, string phoneNumber = null, string emailAddress = null, + string tenantName = null, + string name = null, + string surname = null, bool? isLockedOut = null, bool? notActive = null, + bool? emailConfirmed = null, + bool? isExternal = null, + DateTime? maxCreationTime = null, + DateTime? minCreationTime = null, + DateTime? maxModifitionTime = null, + DateTime? minModifitionTime = null, CancellationToken cancellationToken = default ); @@ -98,8 +107,17 @@ public interface IIdentityUserRepository : IBasicRepository string userName = null, string phoneNumber = null, string emailAddress = null, + string tenantName = null, + string name = null, + string surname = null, bool? isLockedOut = null, bool? notActive = null, + bool? emailConfirmed = null, + bool? isExternal = null, + DateTime? maxCreationTime = null, + DateTime? minCreationTime = null, + DateTime? maxModifitionTime = null, + DateTime? minModifitionTime = null, CancellationToken cancellationToken = default ); diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs index ab9cc892d6..5c415aae10 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs @@ -142,8 +142,17 @@ public class EfCoreIdentityUserRepository : EfCoreRepository identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) @@ -164,6 +176,12 @@ public class EfCoreIdentityUserRepository : EfCoreRepository x.Email == emailAddress) .WhereIf(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0) .WhereIf(notActive == true, x => !x.IsActive) + .WhereIf(emailConfirmed == true, x => !x.EmailConfirmed) + .WhereIf(isExternal == true, x => !x.IsExternal) + .WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) + .WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime) + .WhereIf(maxModifitionTime != null, p => p.LastModificationTime >= maxModifitionTime) + .WhereIf(minModifitionTime != null, p => p.LastModificationTime <= minModifitionTime) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityUser.UserName) : sorting) .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -207,8 +225,17 @@ public class EfCoreIdentityUserRepository : EfCoreRepository identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) @@ -228,6 +258,12 @@ public class EfCoreIdentityUserRepository : EfCoreRepository x.Email == emailAddress) .WhereIf(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0) .WhereIf(notActive == true, x => !x.IsActive) + .WhereIf(emailConfirmed == true, x => !x.EmailConfirmed) + .WhereIf(isExternal == true, x => !x.IsExternal) + .WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) + .WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime) + .WhereIf(maxModifitionTime != null, p => p.LastModificationTime >= maxModifitionTime) + .WhereIf(minModifitionTime != null, p => p.LastModificationTime <= minModifitionTime) .LongCountAsync(GetCancellationToken(cancellationToken)); } @@ -305,11 +341,11 @@ public class EfCoreIdentityUserRepository : EfCoreRepository FindByTenantIdAndUserNameAsync( [NotNull] string userName, - Guid? tenantId, + Guid? tenantId, bool includeDetails = true, CancellationToken cancellationToken = default) { - return await(await GetDbSetAsync()) + return await (await GetDbSetAsync()) .IncludeDetails(includeDetails) .FirstOrDefaultAsync( u => u.TenantId == tenantId && u.UserName == userName, diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs index 71d0d2eb53..54731d56e4 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs @@ -143,8 +143,17 @@ public class MongoIdentityUserRepository : MongoDbRepository>(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) @@ -164,6 +176,12 @@ public class MongoIdentityUserRepository : MongoDbRepository>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) .WhereIf>(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow) .WhereIf>(notActive == true, x => !x.IsActive) + .WhereIf>(emailConfirmed == true, x => !x.EmailConfirmed) + .WhereIf>(isExternal == true, x => !x.IsExternal) + .WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) + .WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime) + .WhereIf(maxModifitionTime != null, p => p.LastModificationTime >= maxModifitionTime) + .WhereIf(minModifitionTime != null, p => p.LastModificationTime <= minModifitionTime) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityUser.UserName) : sorting) .As>() .PageBy>(skipCount, maxResultCount) @@ -211,8 +229,17 @@ public class MongoIdentityUserRepository : MongoDbRepository>(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) @@ -232,6 +262,12 @@ public class MongoIdentityUserRepository : MongoDbRepository>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) .WhereIf>(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow) .WhereIf>(notActive == true, x => !x.IsActive) + .WhereIf>(emailConfirmed == true, x => !x.EmailConfirmed) + .WhereIf>(isExternal == true, x => !x.IsExternal) + .WhereIf>(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) + .WhereIf>(minCreationTime != null, p => p.CreationTime >= minCreationTime) + .WhereIf>(maxModifitionTime != null, p => p.LastModificationTime >= maxModifitionTime) + .WhereIf>(minModifitionTime != null, p => p.LastModificationTime <= minModifitionTime) .LongCountAsync(GetCancellationToken(cancellationToken)); } @@ -272,9 +308,9 @@ public class MongoIdentityUserRepository : MongoDbRepository FindByTenantIdAndUserNameAsync( - [NotNull] string userName, - Guid? tenantId, - bool includeDetails = true, + [NotNull] string userName, + Guid? tenantId, + bool includeDetails = true, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken))