Skip to content

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 PhysicalAndPaymentMatchRule rather 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 PhysicalAndPaymentMatchRule only 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.cs
  • Domain/SAIF.Domain/Claims/Ebilling/Indexing/ProviderMatchBase.cs