Table of Contents

Class SubmitIdProofingCommandHandler

Namespace
SEBT.Portal.UseCases.IdProofing
Assembly
SEBT.Portal.UseCases.dll

Handles ID proofing submission. Orchestrates the flow:

  1. Validate input
  2. Early exit if no ID provided (noIdProvided off-boarding)
  3. Reuse existing active challenge if one exists
  4. Co-loaded users with SNAP/TANF ID: complete at IAL1+ without Socure (DC warehouse IC+DOB when applicable, then on-file match)
  5. Load household PII for Socure when available (name, address, phone from state/CMS), then apply qualifying-household gate for Socure (DC) after the user has submitted the form
  6. Call Socure for risk assessment
  7. Create a new challenge if document verification is required
public class SubmitIdProofingCommandHandler : ICommandHandler<SubmitIdProofingCommand, SubmitIdProofingResponse>
Inheritance
object
SubmitIdProofingCommandHandler
Implements

Constructors

SubmitIdProofingCommandHandler(IUserRepository, IHouseholdRepository, IDocVerificationChallengeRepository, ISocureClient, SocureSettings, IValidator<SubmitIdProofingCommand>, IOptions<IdProofingEligibilitySettings>, ILogger<SubmitIdProofingCommandHandler>)

Handles ID proofing submission. Orchestrates the flow:

  1. Validate input
  2. Early exit if no ID provided (noIdProvided off-boarding)
  3. Reuse existing active challenge if one exists
  4. Co-loaded users with SNAP/TANF ID: complete at IAL1+ without Socure (DC warehouse IC+DOB when applicable, then on-file match)
  5. Load household PII for Socure when available (name, address, phone from state/CMS), then apply qualifying-household gate for Socure (DC) after the user has submitted the form
  6. Call Socure for risk assessment
  7. Create a new challenge if document verification is required
public SubmitIdProofingCommandHandler(IUserRepository userRepository, IHouseholdRepository householdRepository, IDocVerificationChallengeRepository challengeRepository, ISocureClient socureClient, SocureSettings socureSettings, IValidator<SubmitIdProofingCommand> validator, IOptions<IdProofingEligibilitySettings> idProofingEligibilitySettings, ILogger<SubmitIdProofingCommandHandler> logger)

Parameters

userRepository IUserRepository
householdRepository IHouseholdRepository
challengeRepository IDocVerificationChallengeRepository
socureClient ISocureClient
socureSettings SocureSettings
validator IValidator<SubmitIdProofingCommand>
idProofingEligibilitySettings IOptions<IdProofingEligibilitySettings>
logger ILogger<SubmitIdProofingCommandHandler>

Methods

Handle(SubmitIdProofingCommand, CancellationToken)

public Task<Result<SubmitIdProofingResponse>> Handle(SubmitIdProofingCommand command, CancellationToken cancellationToken = default)

Parameters

command SubmitIdProofingCommand
cancellationToken CancellationToken

Returns

Task<Result<SubmitIdProofingResponse>>