Class HouseholdRepository
- Namespace
- SEBT.Portal.Infrastructure.Repositories
- Assembly
- SEBT.Portal.Infrastructure.dll
Household repository that delegates to the loaded state plugin (ISummerEbtCaseService). Maps plugin HouseholdData to Core HouseholdData at the boundary.
public class HouseholdRepository : IHouseholdRepository
- Inheritance
-
objectHouseholdRepository
- Implements
Constructors
HouseholdRepository(ISummerEbtCaseService, ILogger<HouseholdRepository>)
public HouseholdRepository(ISummerEbtCaseService summerEbtCaseService, ILogger<HouseholdRepository> logger)
Parameters
summerEbtCaseServiceISummerEbtCaseServiceloggerILogger<HouseholdRepository>
Methods
GetHouseholdByBenefitIdentifierAndGuardianDobAsync(string, string, DateOnly, PiiVisibility, UserIalLevel, Guid, string?, CancellationToken)
DC co-loaded fallback: loads household via warehouse IC + guardian DOB when rows use IC as PortalID.
Sets envelope email to guardianLoginEmail; non-DC plugins return null.
public Task<HouseholdData?> GetHouseholdByBenefitIdentifierAndGuardianDobAsync(string guardianLoginEmail, string benefitIdentifierIc, DateOnly guardianDateOfBirth, PiiVisibility piiVisibility, UserIalLevel userIalLevel, Guid portalUserId, string? socureReferenceId = null, CancellationToken cancellationToken = default)
Parameters
guardianLoginEmailstringbenefitIdentifierIcstringguardianDateOfBirthDateOnlypiiVisibilityPiiVisibilityuserIalLevelUserIalLevelportalUserIdGuidPortal
User.Id. DC merges this into the warehouse GuardianIdentifiers JSON asPortalUUIDfor cross-system correlation.socureReferenceIdstringSocure reference ID (UUID) from the guardian's identity verification, when one exists. DC merges this into the warehouse GuardianIdentifiers JSON as
SocureUUID.cancellationTokenCancellationToken
Returns
- Task<HouseholdData>
GetHouseholdByEmailAsync(string, PiiVisibility, UserIalLevel, Guid?, bool, CancellationToken)
Retrieves household data by email address. Prefer GetHouseholdByIdentifierAsync(HouseholdIdentifier, PiiVisibility, UserIalLevel, Guid?, bool, CancellationToken) for API use so lookup is state-configurable. PII fields are filtered based on the visibility flags.
public Task<HouseholdData?> GetHouseholdByEmailAsync(string email, PiiVisibility piiVisibility, UserIalLevel userIalLevel, Guid? portalUserId = null, bool includeCardService = true, CancellationToken cancellationToken = default)
Parameters
emailstringThe email address of the household.
piiVisibilityPiiVisibilityWhich PII elements to include. Required; no default. Callers must obtain this from IIdProofingService based on the user's ID proofing status.
userIalLevelUserIalLevelIdentity Assurance Level the user has achieved. Passed to state plugins for backend policy.
portalUserIdGuid?Portal
User.Id. DC passes this asPortalUUIDin warehouse@guardianIdentifiersfor correlation in PortalLog.includeCardServiceboolcancellationTokenCancellationTokenA token to monitor for cancellation requests.
Returns
- Task<HouseholdData>
The household data if found; otherwise,
null.
GetHouseholdByIdentifierAsync(HouseholdIdentifier, PiiVisibility, UserIalLevel, Guid?, bool, CancellationToken)
Retrieves household data by the given household identifier (type + value). The identifier type is determined by state configuration (e.g. Email, SNAP ID). PII fields (Address, Email, Phone etc.) are filtered based on the visibility flags.
public Task<HouseholdData?> GetHouseholdByIdentifierAsync(HouseholdIdentifier identifier, PiiVisibility piiVisibility, UserIalLevel userIalLevel, Guid? portalUserId = null, bool includeCardService = true, CancellationToken cancellationToken = default)
Parameters
identifierHouseholdIdentifierThe household identifier (type and value) to look up.
piiVisibilityPiiVisibilityWhich PII elements to include. Required; no default. Callers must obtain this from IIdProofingService based on the user's IAL level.
userIalLevelUserIalLevelIdentity Assurance Level the user has achieved. Passed to state plugins for backend policy (e.g. whether to return address).
portalUserIdGuid?Portal
User.Id. DC passes this asPortalUUIDin warehouse@guardianIdentifiersfor correlation in PortalLog.includeCardServiceboolcancellationTokenCancellationTokenA token to monitor for cancellation requests.
Returns
- Task<HouseholdData>
The household data if found; otherwise,
null.
TryMatchCoLoadedGuardianByBenefitIdAndDobAsync(string, DateOnly, Guid, CancellationToken)
For co-loaded SNAP/TANF ID proofing: asks the state plugin whether the submitted benefit identifier
(IC) and guardian date of birth match state warehouse data. Implemented for DC only; other states return false.
public Task<bool> TryMatchCoLoadedGuardianByBenefitIdAndDobAsync(string benefitIdentifierIc, DateOnly guardianDateOfBirth, Guid portalUserId, CancellationToken cancellationToken = default)
Parameters
benefitIdentifierIcstringSNAP/TANF identifier from onboarding, mapped to warehouse IC.
guardianDateOfBirthDateOnlyGuardian DOB from ID proofing.
portalUserIdGuidPortal
User.Id. DC merges this into the warehouse GuardianIdentifiers JSON asPortalUUIDfor cross-system correlation.cancellationTokenCancellationTokenCancellation token.
Returns
- Task<bool>
trueif the state reports a match.
UpsertHouseholdAsync(HouseholdData, CancellationToken)
Creates or updates household data.
public Task UpsertHouseholdAsync(HouseholdData householdData, CancellationToken cancellationToken = default)
Parameters
householdDataHouseholdDataThe household data to create or update.
cancellationTokenCancellationTokenA token to monitor for cancellation requests.
Returns
- Task
A task representing the asynchronous operation.