Class CardReplacementRequestRepository
- Namespace
- SEBT.Portal.Infrastructure.Repositories
- Assembly
- SEBT.Portal.Infrastructure.dll
EF Core implementation of ICardReplacementRequestRepository. Queries and writes to the CardReplacementRequests table.
public class CardReplacementRequestRepository : ICardReplacementRequestRepository
- Inheritance
-
objectCardReplacementRequestRepository
- Implements
Constructors
CardReplacementRequestRepository(PortalDbContext)
EF Core implementation of ICardReplacementRequestRepository. Queries and writes to the CardReplacementRequests table.
public CardReplacementRequestRepository(PortalDbContext dbContext)
Parameters
dbContextPortalDbContext
Methods
CreateAsync(string, string, Guid, CancellationToken)
Records a new card replacement request.
public Task CreateAsync(string householdIdentifierHash, string caseIdHash, Guid requestedByUserId, CancellationToken cancellationToken = default)
Parameters
householdIdentifierHashstringHMAC hash of the household identifier.
caseIdHashstringHMAC hash of the case ID.
requestedByUserIdGuidThe ID of the user making the request.
cancellationTokenCancellationTokenCancellation token.
Returns
- Task
GetMostRecentRequestDateAsync(string, string, CancellationToken)
Returns the most recent request timestamp for a given household+case, or null if no request has ever been recorded. Used to hydrate CardRequestedAt so the frontend can enforce cooldown UI.
public Task<DateTime?> GetMostRecentRequestDateAsync(string householdIdentifierHash, string caseIdHash, CancellationToken cancellationToken = default)
Parameters
householdIdentifierHashstringcaseIdHashstringcancellationTokenCancellationToken
Returns
- Task<DateTime?>
HasRecentRequestAsync(string, string, TimeSpan, CancellationToken)
Checks whether a card replacement request exists for the given household+case within the specified cooldown period.
public Task<bool> HasRecentRequestAsync(string householdIdentifierHash, string caseIdHash, TimeSpan cooldownPeriod, CancellationToken cancellationToken = default)
Parameters
householdIdentifierHashstringHMAC hash of the household identifier.
caseIdHashstringHMAC hash of the case ID.
cooldownPeriodTimeSpanThe minimum time that must elapse between requests.
cancellationTokenCancellationTokenCancellation token.
Returns
- Task<bool>
True if a request exists within the cooldown window.