SAIF.Business.Payment architecture¶
SAIF.Business.Payment is a component-tier BOF business library that serves as an eligibility-object and contract boundary in the payment domain. It defines the IBankAccount and iPaymentPreference interfaces, and it hosts the claim-payee-eligibility business objects (clsEligPayeeClaim and clsEligPayeeClaimCollection). No live SQL is executed by any class in this library.
Responsibilities¶
- Determine and persist eligible-payee-for-claim-payment records (
clsEligPayeeClaimandclsEligPayeeClaimCollection) in memory via BOF factory scaffolding. - Define the
IBankAccountcontract describing a bank account's public shape, implemented elsewhere.* - Define the
iPaymentPreferencecontract describing a payee's preferred payment method, implemented elsewhere.*
Component boundaries¶
clsEligPayeeClaim: business object representing an eligible payee for a claim payment; inheritsclsBusinessBaseand implementsiPayee. All SQL properties either throwInvalidSQLPropertyor return a single-space string literal, so no live SQL is executed.clsEligPayeeClaimCollection: collection ofclsEligPayeeClaim; inheritsclsBusinessCollectionBaseand implements its own nestedIBusinessCriteria.BeforeRetrieveis empty andAfterRetrievereturnsMe, so no live SQL is executed.IBankAccount: read-only contract interface describing bank-account shape; implemented byclsBankAccountinSAIF.Business.Payment.EFT.*iPaymentPreference: contract interface describing payment-preference shape through thePaymentPreferenceTypesenum and related routing/account properties; implemented byclsPaymentPreferenceandclsProviderPaymentPreferenceinSAIF.Business.Payment.EFT.*
Interaction model¶
IBankAccountandiPaymentPreferenceare defined here but implemented in the largerSAIF.Business.Payment.EFTlibrary, confirming this library's role as the shared contract point between the two payment libraries.*clsEligPayeeClaimandclsEligPayeeClaimCollectiondo not execute live SQL; the only non-throwingRetrieveSQLgetter returns a single-space string literal with no request construction, parameters, table references, or stored-procedure calls.- The
.nuspecdependency onSAIF.BOF.Business.Claim,SAIF.BOF.Business.Claim.Person, andSAIF.BOF.Business.View.Claimconfirms this library's role is claim-payee-specific rather than general payment processing.
Architecture diagram¶
The following diagram shows the contract relationship between this library and its primary implementer, SAIF.Business.Payment.EFT.
flowchart TD
EligPayee["clsEligPayeeClaim /<br>clsEligPayeeClaimCollection"] --> Framework["SAIF.BOF.Framework<br>clsBusinessBase / clsBusinessCollectionBase"]
IBankAccount["IBankAccount contract"] -.-> BankAccountImpl["clsBankAccount<br>in SAIF.Business.Payment.EFT"]
IPaymentPref["iPaymentPreference contract"] -.-> PaymentPrefImpl["clsPaymentPreference /<br>clsProviderPaymentPreference<br>in SAIF.Business.Payment.EFT"]
EligPayee --> DB["(No live SQL executed)"]
Sequence diagram¶
The following diagram shows the claim-payee-eligibility creation sequence, noting that no live SQL is executed by this library.
sequenceDiagram
participant Caller
participant EligPayeeClaim as clsEligPayeeClaim
participant Criteria as Nested Criteria (IBusinessCriteria)
Caller->>EligPayeeClaim: NewEligPayeeClaim(dpi, personID)
EligPayeeClaim->>Criteria: RetrieveSQL (returns single-space literal, no live SQL)
Criteria-->>EligPayeeClaim: In-memory object constructed via BOF factory scaffolding
EligPayeeClaim-->>Caller: Eligible-payee object (in-memory)
Design constraints¶
- No live executable SQL was found in this library despite nested
IBusinessCriteriaclasses being present; both classes use in-memory BOF factory scaffolding instead. - The library is Oracle-configured at the provider level (
Oracle.ManagedDataAccess.Clientregistered inapp.configandWeb.config), but no executable SQL exists to classify at the statement level. - No security or authorization framework interaction was detected.
- No configuration framework (
IEnvironmentService,ConfigurationManager.AppSettings,DbConnectionManager) interaction was detected. - All dependencies are resolved as NuGet package references per the
.nuspec; no local<ProjectReference>values were found.
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Database tables
- SQL catalog
- API reference
- Configuration
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Business\SAIF.Business.Payment\clsEligPayeeClaim.vbBusiness\SAIF.Business.Payment\clsEligPayeeClaimCollection.vbBusiness\SAIF.Business.Payment\IBankAccount.vbBusiness\SAIF.Business.Payment\IPaymentPreference.vbBusiness\SAIF.Business.Payment\SAIF.BOF.Business.Payment.nuspecBusiness\SAIF.Business.Payment\app.configBusiness\SAIF.Business.Payment\Web.config