PolicyAssociationExtensions¶
These extension methods turn raw PolicyAssociation rows and PolicyAssociationList collections into caller-friendly queries over the current association model. They support list filtering, parent/child navigation, and manual-versus-derived classification after PolicyAssociationList.GetPolicyAssociationList has applied the default source-policy exclusion described in BR-VP-014.
Purpose¶
- Provide the read-side navigation helpers consumers need after association rows have been materialized from
PolicyAssociations.vb. - Centralize common association-list operations such as extracting policy numbers, locating parent rows, and identifying manual relationships so callers do not repeat the same traversal logic.
- Bridge the current associations model back to legacy affiliate-style categorization through
ToAffiliateType, preserving compatibility with older calling patterns.*
Context¶
- Namespace:
SAIF.Business.View.Policy - Assembly/package:
SAIF.Business.View.Policy(embedded)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| AssociationType | Public Function AssociationType(association As PolicyAssociation) As AssociationTypes |
Returns the association-type identifier carried by a row so downstream logic can branch on the current association model rather than the obsolete affiliate model.* |
| PolicyNumbers | Public Function PolicyNumbers(associations As IEnumerable(Of PolicyAssociation)) As IEnumerable(Of Integer) |
Projects an association sequence to the related policy numbers for set membership checks, display lists, or downstream filtering. |
| Contains | Public Function Contains(associations As IEnumerable(Of PolicyAssociation), policyNumber As Integer) As Boolean |
Tests whether the list already contains a row for a specific policy number without requiring the caller to hand-roll the scan. |
| ToAffiliateType | Public Function ToAffiliateType(association As PolicyAssociation) As AffiliateTypes |
Converts a current-model association row into the obsolete AffiliateTypes classification so legacy affiliate consumers can continue to interpret the relationship.* |
| IsParentPolicy | Public Function IsParentPolicy(association As PolicyAssociation) As Boolean |
Identifies whether a row represents the parent-policy relationship used when authorization falls back through the parent path described in BR-VP-009. |
| ParentPolicy | Public Function ParentPolicy(associations As IEnumerable(Of PolicyAssociation)) As PolicyAssociation |
Resolves the single parent-policy row from an association list so callers can navigate from a child policy to its governing parent entry. |
| Parents | Public Function Parents(associations As IEnumerable(Of PolicyAssociation)) As IEnumerable(Of PolicyAssociation) |
Filters a list down to the rows classified as parent relationships, supporting callers that need all parent candidates rather than the first match. |
| IsManual | Public Function IsManual(association As PolicyAssociation) As Boolean |
Classifies a row as a manual relationship by using the association-category conventions described in BR-VP-021. |
| ToNonManual | Public Function ToNonManual(association As PolicyAssociation) As PolicyAssociation |
Converts a manual-category row to its non-manual counterpart so callers can normalize manual relationships before comparison or display.* |
Behavioral notes¶
- These helpers operate on the list returned from the current association pipeline in
PolicyAssociations.vb, not on the obsolete affiliated-policy collection. ParentPolicyandParentsexist to navigate the parent/child association graph that is also used by parent-policy authorization fallback in BR-VP-009.- Manual classification follows the model-wide category-prefix rules in BR-VP-021, where manual relationships are distinguished from policy relationships by their prefix.
- Because the source policy is omitted from association results unless explicitly included,
ContainsandPolicyNumbersnormally evaluate only related policies, not the originating policy, unless the caller opted out of BR-VP-014.
Constraints and usage notes¶
- Use these helpers with
PolicyAssociationListresults from the current associations model; new work should not rebuild equivalent logic on top of obsolete affiliate APIs. ToAffiliateTypeexists for compatibility with older affiliate-based callers and should not be treated as the primary classification strategy for new consumers.*
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Sources¶
SAIF.Business.View.Policy/PolicyAssociations.vb