|  |  |  | @ -11,7 +11,8 @@ using Volo.Abp.MongoDB; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | namespace Volo.Abp.Identity.MongoDB | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |     public class MongoIdentitySecurityLogRepository : MongoDbRepository<IAbpIdentityMongoDbContext, IdentitySecurityLog, Guid>, IIdentitySecurityLogRepository | 
			
		
	
		
			
				
					|  |  |  |  |     public class MongoIdentitySecurityLogRepository : | 
			
		
	
		
			
				
					|  |  |  |  |         MongoDbRepository<IAbpIdentityMongoDbContext, IdentitySecurityLog, Guid>, IIdentitySecurityLogRepository | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         public MongoIdentitySecurityLogRepository(IMongoDbContextProvider<IAbpIdentityMongoDbContext> dbContextProvider) | 
			
		
	
		
			
				
					|  |  |  |  |             : base(dbContextProvider) | 
			
		
	
	
		
			
				
					|  |  |  | @ -27,6 +28,7 @@ namespace Volo.Abp.Identity.MongoDB | 
			
		
	
		
			
				
					|  |  |  |  |             string applicationName = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string identity = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string action = null, | 
			
		
	
		
			
				
					|  |  |  |  |             Guid? userId = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string userName = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string clientId = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string correlationId = null, | 
			
		
	
	
		
			
				
					|  |  |  | @ -39,6 +41,7 @@ namespace Volo.Abp.Identity.MongoDB | 
			
		
	
		
			
				
					|  |  |  |  |                 applicationName, | 
			
		
	
		
			
				
					|  |  |  |  |                 identity, | 
			
		
	
		
			
				
					|  |  |  |  |                 action, | 
			
		
	
		
			
				
					|  |  |  |  |                 userId, | 
			
		
	
		
			
				
					|  |  |  |  |                 userName, | 
			
		
	
		
			
				
					|  |  |  |  |                 clientId, | 
			
		
	
		
			
				
					|  |  |  |  |                 correlationId | 
			
		
	
	
		
			
				
					|  |  |  | @ -56,6 +59,7 @@ namespace Volo.Abp.Identity.MongoDB | 
			
		
	
		
			
				
					|  |  |  |  |             string applicationName = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string identity = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string action = null, | 
			
		
	
		
			
				
					|  |  |  |  |             Guid? userId = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string userName = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string clientId = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string correlationId = null, | 
			
		
	
	
		
			
				
					|  |  |  | @ -67,33 +71,47 @@ namespace Volo.Abp.Identity.MongoDB | 
			
		
	
		
			
				
					|  |  |  |  |                 applicationName, | 
			
		
	
		
			
				
					|  |  |  |  |                 identity, | 
			
		
	
		
			
				
					|  |  |  |  |                 action, | 
			
		
	
		
			
				
					|  |  |  |  |                 userId, | 
			
		
	
		
			
				
					|  |  |  |  |                 userName, | 
			
		
	
		
			
				
					|  |  |  |  |                 clientId, | 
			
		
	
		
			
				
					|  |  |  |  |                 correlationId | 
			
		
	
		
			
				
					|  |  |  |  |             ); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return await query.As<IMongoQueryable<IdentitySecurityLog>>().LongCountAsync(GetCancellationToken(cancellationToken)); | 
			
		
	
		
			
				
					|  |  |  |  |             return await query.As<IMongoQueryable<IdentitySecurityLog>>() | 
			
		
	
		
			
				
					|  |  |  |  |                 .LongCountAsync(GetCancellationToken(cancellationToken)); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |           protected virtual IQueryable<IdentitySecurityLog> GetListQuery( | 
			
		
	
		
			
				
					|  |  |  |  |               DateTime? startTime = null, | 
			
		
	
		
			
				
					|  |  |  |  |               DateTime? endTime = null, | 
			
		
	
		
			
				
					|  |  |  |  |               string applicationName = null, | 
			
		
	
		
			
				
					|  |  |  |  |               string identity = null, | 
			
		
	
		
			
				
					|  |  |  |  |               string action = null, | 
			
		
	
		
			
				
					|  |  |  |  |               string userName = null, | 
			
		
	
		
			
				
					|  |  |  |  |               string clientId = null, | 
			
		
	
		
			
				
					|  |  |  |  |               string correlationId = null) | 
			
		
	
		
			
				
					|  |  |  |  |           { | 
			
		
	
		
			
				
					|  |  |  |  |               return GetMongoQueryable() | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(startTime.HasValue, securityLog => securityLog.CreationTime >= startTime) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(endTime.HasValue, securityLog => securityLog.CreationTime >= endTime) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(!applicationName.IsNullOrWhiteSpace(), securityLog => securityLog.ApplicationName == applicationName) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(!identity.IsNullOrWhiteSpace(), securityLog => securityLog.Identity == identity) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(!action.IsNullOrWhiteSpace(), securityLog => securityLog.Action == action) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(!userName.IsNullOrWhiteSpace(), securityLog => securityLog.UserName == userName) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(!clientId.IsNullOrWhiteSpace(), securityLog => securityLog.ClientId == clientId) | 
			
		
	
		
			
				
					|  |  |  |  |                   .WhereIf(!correlationId.IsNullOrWhiteSpace(), securityLog => securityLog.CorrelationId == correlationId); | 
			
		
	
		
			
				
					|  |  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         public async Task<IdentitySecurityLog> GetByUserIdAsync(Guid id, Guid userId, bool includeDetails = false, | 
			
		
	
		
			
				
					|  |  |  |  |             CancellationToken cancellationToken = default) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             return await GetMongoQueryable().FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId, | 
			
		
	
		
			
				
					|  |  |  |  |                 GetCancellationToken(cancellationToken)); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         protected virtual IQueryable<IdentitySecurityLog> GetListQuery( | 
			
		
	
		
			
				
					|  |  |  |  |             DateTime? startTime = null, | 
			
		
	
		
			
				
					|  |  |  |  |             DateTime? endTime = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string applicationName = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string identity = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string action = null, | 
			
		
	
		
			
				
					|  |  |  |  |             Guid? userId = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string userName = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string clientId = null, | 
			
		
	
		
			
				
					|  |  |  |  |             string correlationId = null) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             return GetMongoQueryable() | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(startTime.HasValue, securityLog => securityLog.CreationTime >= startTime) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(endTime.HasValue, securityLog => securityLog.CreationTime >= endTime) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(!applicationName.IsNullOrWhiteSpace(), | 
			
		
	
		
			
				
					|  |  |  |  |                     securityLog => securityLog.ApplicationName == applicationName) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(!identity.IsNullOrWhiteSpace(), securityLog => securityLog.Identity == identity) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(!action.IsNullOrWhiteSpace(), securityLog => securityLog.Action == action) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(userId.HasValue, securityLog => securityLog.UserId == userId) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(!userName.IsNullOrWhiteSpace(), securityLog => securityLog.UserName == userName) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(!clientId.IsNullOrWhiteSpace(), securityLog => securityLog.ClientId == clientId) | 
			
		
	
		
			
				
					|  |  |  |  |                 .WhereIf(!correlationId.IsNullOrWhiteSpace(), | 
			
		
	
		
			
				
					|  |  |  |  |                     securityLog => securityLog.CorrelationId == correlationId); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |