Class RequestCardReplacementCommandHandler
Handles card replacement requests for an authenticated user's household. Validates input, resolves household identity, enforces minimum IAL, rejects case refs not on the household, enforces per-case self-service rules, enforces 2-week cooldown via portal DB, and dispatches to the state connector. Persists replacement-request records for future cooldown enforcement only when the connector reports success, so a failed dispatch does not burn the user's 14-day cooldown for an action that never executed. Connector policy rejections and backend errors are mapped to portal Result types.
public class RequestCardReplacementCommandHandler : ICommandHandler<RequestCardReplacementCommand>
- Inheritance
-
objectRequestCardReplacementCommandHandler
- Implements
Constructors
RequestCardReplacementCommandHandler(IValidator<RequestCardReplacementCommand>, IHouseholdIdentifierResolver, IHouseholdRepository, IIdProofingService, ISelfServiceEvaluator, IStateCardReplacementService, ICardReplacementRequestRepository, IIdentifierHasher, IDistributedLockProvider, ILogger<RequestCardReplacementCommandHandler>)
Handles card replacement requests for an authenticated user's household. Validates input, resolves household identity, enforces minimum IAL, rejects case refs not on the household, enforces per-case self-service rules, enforces 2-week cooldown via portal DB, and dispatches to the state connector. Persists replacement-request records for future cooldown enforcement only when the connector reports success, so a failed dispatch does not burn the user's 14-day cooldown for an action that never executed. Connector policy rejections and backend errors are mapped to portal Result types.
public RequestCardReplacementCommandHandler(IValidator<RequestCardReplacementCommand> validator, IHouseholdIdentifierResolver resolver, IHouseholdRepository repository, IIdProofingService idProofingService, ISelfServiceEvaluator selfServiceEvaluator, IStateCardReplacementService cardReplacementService, ICardReplacementRequestRepository cardReplacementRepo, IIdentifierHasher identifierHasher, IDistributedLockProvider distributedLockProvider, ILogger<RequestCardReplacementCommandHandler> logger)
Parameters
validatorIValidator<RequestCardReplacementCommand>resolverIHouseholdIdentifierResolverrepositoryIHouseholdRepositoryidProofingServiceIIdProofingServiceselfServiceEvaluatorISelfServiceEvaluatorcardReplacementServiceIStateCardReplacementServicecardReplacementRepoICardReplacementRequestRepositoryidentifierHasherIIdentifierHasherdistributedLockProviderIDistributedLockProviderloggerILogger<RequestCardReplacementCommandHandler>
Methods
Handle(RequestCardReplacementCommand, CancellationToken)
public Task<Result> Handle(RequestCardReplacementCommand command, CancellationToken cancellationToken = default)
Parameters
commandRequestCardReplacementCommandcancellationTokenCancellationToken
Returns
- Task<Result>