Skip to content

PaymentAndFacilityMatchRule

PaymentAndFacilityMatchRule is an IProviderMatchRule for billers that supplied both a payment and a facility address (with or without a physical address as well): when the payment and facility addresses textually match each other, it delegates to PaymentOnlyMatchRule; otherwise it independently matches the payment and facility addresses against two-address provider locations and requires both matches to intersect to the same unique location. It is the primary rule ProviderIndexerV2 tries first 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.
  • When the biller's payment and facility addresses match each other, reduces to the simpler single-address matching implemented by PaymentOnlyMatchRule.
  • Otherwise independently matches the payment and facility addresses against two-address provider locations and requires the two matched-location sets to intersect to exactly one 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
PaymentAndFacilityMatchRule (constructor) public PaymentAndFacilityMatchRule(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), then either delegates to PaymentOnlyMatchRule (when those addresses match) or intersects independent payment/facility matches, returning null when neither path finds a unique location.

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

  • ProviderIndexerV2 places this rule first (before the facility-name and provider-type filtered variants and before ThreeAddressNoFacilityMatchesMatchRule) in the wide rule chain, so it wins ties over the more specific variants (DOM-BR-028)*.

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