Backend/e-suite.Manager.BlockedIPs/e-suite.Modules.BlockedIPsManager/Repository/BlockedIPsManagerRepository.cs
2026-01-20 21:50:10 +00:00

27 lines
1.1 KiB
C#

using e_suite.API.Common.repository;
using e_suite.Database.Audit;
using e_suite.Database.Core;
using FailedAccessAttempt = e_suite.Database.Core.Tables.Sentinel.FailedAccessAttempt;
namespace e_suite.Modules.BlockedIPsManager.Repository;
public class BlockedIPsManagerRepository : RepositoryBase, IBlockedIPsManagerRepository
{
public BlockedIPsManagerRepository(IEsuiteDatabaseDbContext databaseDbContext) : base(databaseDbContext)
{
}
public IQueryable<FailedAccessAttempt> GetBlockedIPs(DateTimeOffset earliestAttemptTime)
{
return DatabaseDbContext.FailedAccessAttempts
.Where(x => x.AttemptedTime >= earliestAttemptTime);
}
public async Task UnBlockIP(AuditUserDetails auditUserDetails, string ipAddress, CancellationToken cancellationToken)
{
var failedAccessAttempts = DatabaseDbContext.FailedAccessAttempts.Where(x => x.IPAddress == ipAddress);
DatabaseDbContext.FailedAccessAttempts.RemoveRange(failedAccessAttempts);
await DatabaseDbContext.SaveChangesAsync(auditUserDetails, cancellationToken);
}
}