Class MockHouseholdRepository
- Namespace
- SEBT.Portal.Infrastructure.Repositories
- Assembly
- SEBT.Portal.Infrastructure.dll
Mock implementation of household repository for development and testing. Returns mock data without requiring a database or external service.
public class MockHouseholdRepository : IHouseholdRepository
- Inheritance
-
objectMockHouseholdRepository
- Implements
Constructors
MockHouseholdRepository(ILogger<MockHouseholdRepository>, IOptions<SeedingSettings>?, TimeProvider?)
public MockHouseholdRepository(ILogger<MockHouseholdRepository> logger, IOptions<SeedingSettings>? settings = null, TimeProvider? timeProvider = null)
Parameters
loggerILogger<MockHouseholdRepository>settingsIOptions<SeedingSettings>timeProviderTimeProvider
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.
TryUpdateAddress(string, Address)
Finds a household by identifier value (email or phone) and updates both the household-level AddressOnFile and each SummerEbtCase's MailingAddress in place. Used by the mock state address update service so that subsequent reads reflect the updated address.
public bool TryUpdateAddress(string identifierValue, Address newAddress)
Parameters
identifierValuestringnewAddressAddress
Returns
- bool
True if a matching household was found and updated; false otherwise.
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.