ThreeAddressNoFacilityMatchesMatchRule¶
ThreeAddressNoFacilityMatchesMatchRule is an IProviderMatchRule for billers with payment and facility addresses (with or without physical) that specifically handles the case where the facility address has no matching candidate at all: when payment and facility match each other it delegates to PaymentOnlyMatchRule; otherwise it intersects independent payment and facility matches, and if that intersection is empty specifically because no facility-address candidates matched, it falls back to PhysicalAndPaymentMatchRule instead of failing outright. It is part of the ProviderIndexerV2 rule set for the wider (physical+payment+facility) rule chain (DOM-BR-028).
Purpose¶
- Applies when the biller has payment and facility addresses, or physical, payment, and facility addresses together, the same precondition as
PaymentAndFacilityMatchRule. - When the biller's payment and facility addresses match each other, reduces to the simpler single-address matching implemented by
PaymentOnlyMatchRule. - When the payment/facility intersection is empty specifically because no facility-address candidates matched, falls back to
PhysicalAndPaymentMatchRulerather than returning no match, covering billers whose facility address is present but does not correspond to any known provider location.
Context¶
- Namespace:
SAIF.Domain.Claims.Ebilling.Indexing - Assembly/package:
SAIF.Domain(Domain/SAIF.Domain/SAIF.Domain.csproj, .NET Framework 4.6.2 class library)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| ThreeAddressNoFacilityMatchesMatchRule (constructor) | public ThreeAddressNoFacilityMatchesMatchRule(IEnumerable<EbillAddress> ebillAddresses, IEnumerable<ProviderAddress> physicalAddresses) |
Initializes the rule with the biller's e-bill addresses and the candidate provider addresses, via ProviderMatchBase. |
| UniqueProviderLocationMatch | public ProviderLocation UniqueProviderLocationMatch(bool concatenateTwoLineBillAddresses) |
Applies only when the biller has payment and facility addresses (with or without physical); delegates to PaymentOnlyMatchRule when they match, otherwise intersects independent payment/facility matches and falls back to PhysicalAndPaymentMatchRule when no facility candidates matched at all. |
Inherited public members¶
Members in this section are inherited from ProviderMatchBase in SAIF.Domain. They are available on this type through inheritance.
| Member | Signature | Purpose | Origin |
|---|---|---|---|
| BillerHasPhysicalPaymentAndFacilityAddresses | public bool BillerHasPhysicalPaymentAndFacilityAddresses() |
Reports whether the biller has all three address roles present. | SAIF.Domain — ProviderMatchBase |
| EbillAddressAndProviderAddressMatch | public static bool EbillAddressAndProviderAddressMatch(EbillAddress ebillAddress, ProviderAddress providerAddress, bool concatenateTwoLineBillAddresses) |
Reports whether an e-bill address matches a candidate provider address on Line1 (optionally concatenated with Line2), City, and zero-padded zip code (DOM-BR-022). | SAIF.Domain — ProviderMatchBase |
| TwoEbillAddressesMatch | public static bool TwoEbillAddressesMatch(EbillAddress addressOne, EbillAddress addressTwo) |
Reports whether two e-bill addresses match on Line1, City, and zero-padded zip code. | SAIF.Domain — ProviderMatchBase |
| GetUniqueLocation | public static ProviderLocation GetUniqueLocation(IList<ProviderAddress> matchedAddressesListOne, IList<ProviderAddress> matchedAddressesListTwo) |
Intersects two matched-address lists by provider-location id and returns the single common ProviderLocation, or null when the intersection is not exactly one location (DOM-BR-025). |
SAIF.Domain — ProviderMatchBase |
| GetMatchingProviderAddresses (single address) | public static IEnumerable<ProviderAddress> GetMatchingProviderAddresses(EbillAddress ebillAddress, IEnumerable<ProviderAddress> providerAddresses, bool concatenateTwoLineBillAddresses) |
Filters the candidate provider addresses down to those matching the given e-bill address. | SAIF.Domain — ProviderMatchBase |
| GetMatchingProviderAddresses (address set) | public static IEnumerable<ProviderAddress> GetMatchingProviderAddresses(IEnumerable<EbillAddress> ebillAddresses, IEnumerable<ProviderAddress> providerAddresses, bool concatenateBillAddresses) |
Filters the candidate provider addresses down to those matching any address in the given e-bill address set. | SAIF.Domain — ProviderMatchBase |
| RemoveSpecialCharacters | public static string RemoveSpecialCharacters(string input) |
Strips every character except letters, digits, and spaces from the input, returning null for a null input. |
SAIF.Domain — ProviderMatchBase |
Behavioral notes¶
- The fallback to
PhysicalAndPaymentMatchRuleonly triggers when the facility-address candidate list is empty (matchedProviderFacilityAddresses.Count == 0), not merely when the intersection is empty for other reasons — a payment/facility intersection that is empty because both sides had candidates that just did not overlap does not trigger the fallback*.
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Domain/SAIF.Domain/Claims/Ebilling/Indexing/ThreeAddressNoFacilityMatchesMatchRule.csDomain/SAIF.Domain/Claims/Ebilling/Indexing/ProviderMatchBase.cs