Class DatabaseDocVerificationChallengeRepository
- Namespace
- SEBT.Portal.Infrastructure.Repositories
- Assembly
- SEBT.Portal.Infrastructure.dll
Database-backed implementation of IDocVerificationChallengeRepository using Entity Framework Core. All read operations are scoped by userId to enforce ownership.
public class DatabaseDocVerificationChallengeRepository : IDocVerificationChallengeRepository
- Inheritance
-
objectDatabaseDocVerificationChallengeRepository
- Implements
Constructors
DatabaseDocVerificationChallengeRepository(PortalDbContext, IPiiSymmetricEncryption)
Database-backed implementation of IDocVerificationChallengeRepository using Entity Framework Core. All read operations are scoped by userId to enforce ownership.
public DatabaseDocVerificationChallengeRepository(PortalDbContext dbContext, IPiiSymmetricEncryption piiSymmetricEncryption)
Parameters
dbContextPortalDbContextpiiSymmetricEncryptionIPiiSymmetricEncryption
Methods
CreateAsync(DocVerificationChallenge, CancellationToken)
Creates a new challenge record.
public Task CreateAsync(DocVerificationChallenge challenge, CancellationToken cancellationToken = default)
Parameters
challengeDocVerificationChallengecancellationTokenCancellationToken
Returns
- Task
GetActiveByUserIdAsync(Guid, CancellationToken)
Retrieves the active (non-terminal) challenge for a user, if one exists. Used to enforce the one-active-challenge-per-user constraint.
public Task<DocVerificationChallenge?> GetActiveByUserIdAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidcancellationTokenCancellationToken
Returns
- Task<DocVerificationChallenge>
GetByEvalIdAsync(string, CancellationToken)
Retrieves a challenge by its Socure evaluation ID (fallback correlation).
public Task<DocVerificationChallenge?> GetByEvalIdAsync(string evalId, CancellationToken cancellationToken = default)
Parameters
evalIdstringcancellationTokenCancellationToken
Returns
- Task<DocVerificationChallenge>
GetByPublicIdAsync(Guid, Guid, CancellationToken)
Retrieves a challenge by its public ID and owning user ID. Returns null if the challenge does not exist or belongs to a different user.
public Task<DocVerificationChallenge?> GetByPublicIdAsync(Guid publicId, Guid userId, CancellationToken cancellationToken = default)
Parameters
publicIdGuiduserIdGuidcancellationTokenCancellationToken
Returns
- Task<DocVerificationChallenge>
GetBySocureReferenceIdAsync(string, CancellationToken)
Retrieves a challenge by its Socure reference ID for webhook correlation. Falls back to EvalId if referenceId lookup returns null.
public Task<DocVerificationChallenge?> GetBySocureReferenceIdAsync(string referenceId, CancellationToken cancellationToken = default)
Parameters
referenceIdstringcancellationTokenCancellationToken
Returns
- Task<DocVerificationChallenge>
GetLatestSocureReferenceIdByUserIdAsync(Guid, CancellationToken)
Retrieves the Socure reference ID from the user's most recent challenge that has one, or null when the user has never reached a Socure verification session. Used to pass the identifier to state connectors for cross-system correlation.
public Task<string?> GetLatestSocureReferenceIdByUserIdAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidcancellationTokenCancellationToken
Returns
- Task<string>
UpdateAsync(DocVerificationChallenge, CancellationToken)
Updates an existing challenge record.
public Task UpdateAsync(DocVerificationChallenge challenge, CancellationToken cancellationToken = default)
Parameters
challengeDocVerificationChallengecancellationTokenCancellationToken
Returns
- Task