---
title: clsInterestedPartyCollection
summary: API reference for clsInterestedPartyCollection.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Affiliate
reference_type: package
---

# clsInterestedPartyCollection

Collection façade for retrieving and managing the interested parties on a policy across an optional date window.

## Purpose
- Load policy-level interested-party lists from joined association/person SQL.
- Cache code tables so child objects can reuse them during transactional loads.

## Context
- Namespace: `SAIF.Business.Policy.Affiliate`
- Assembly/package: `SAIF.Business.Policy.Affiliate`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| InterestedPartyTitles | `Public ReadOnly Property InterestedPartyTitles() As clsCodeCollection` | Loads the `AFFILIATE_TITLE_CODE` table once for the whole list and hands it to each child during a transactional load, so a policy with many interested parties issues one title-code query instead of one per person — the point of the cache is avoiding nested reads inside an open transaction. |
| InsuredCodes | `Public ReadOnly Property InsuredCodes() As clsCodeCollection` | Loads the `INSURED_CODE` table once for the whole list and shares it with each child during a transactional load, keeping insured-code description resolution to a single query per collection rather than per party. |
| CurrentItem | `Public Shadows ReadOnly Property CurrentItem() As clsInterestedParty` | Gives the framework's traversal pointer back as a typed interested party, so callers walking the list with the BOF cursor reach party-specific members without casting. |
| Add | `Public Shadows Function Add(ByVal inInterestedParty As clsInterestedParty) As Integer` | Appends a party to the in-memory list only; because this library provides no insert SQL, an added party is never written to `BUSINESS_AFFILIATE` and is lost when the collection goes out of scope. |
| Contains | `Public Overloads Function Contains(ByVal inInterestedParty As clsInterestedParty) As Boolean` | Scans the live list for a party matching the supplied object on policy, SSN, and effective date, so the same person on another policy period is not treated as already present. |
| Contains | `Public Overloads Function Contains(ByVal inPolicyNumber As Decimal, ByVal inAffiliateID As String, ByVal inEffectiveDate As Date) As Boolean` | Answers the same membership question from loose key values, letting callers test whether a policy period already has that person attached without first constructing a party object. |
| ContainsDeleted | `Public Overloads Function ContainsDeleted(ByVal inInterestedParty As clsInterestedParty) As Boolean` | Searches the framework's removed-items list rather than the live list, so callers can tell a party that was never present from one removed during this session. |
| ContainsDeleted | `Public Overloads Function ContainsDeleted(ByVal inPolicyNumber As Decimal, ByVal inAffiliateID As String, ByVal inEffectiveDate As Date) As Boolean` | Answers the removed-items question from loose key values, matching on the same three-part association key. |
| Remove | `Public Sub Remove(ByVal inInterestedParty As clsInterestedParty)` | Drops the given party from the in-memory list; the underlying association row is untouched, since no delete SQL exists in this library. |
| Remove | `Public Sub Remove(ByVal inPolicyNumber As Decimal, ByVal inAffiliateID As String, ByVal inEffectiveDate As Date)` | Finds the party matching a three-part key and drops the first match from the in-memory list, leaving the database row in place. |
| Where | `Public Function Where(ByVal match As Predicate(Of clsInterestedParty)) As clsInterestedPartyCollection` | Produces a new typed collection of the parties satisfying a caller's test, so filtered results keep the collection surface instead of degrading to a plain sequence. |
| GetInterestedPartyCollection | `Public Shared Function GetInterestedPartyCollection(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As clsInterestedPartyCollection` | Loads every interested party ever attached to the policy — the date window defaults to the widest possible range — with each person hydrated from the same joined row and the list ordered by name. |
| GetInterestedPartyCollection | `Public Shared Function GetInterestedPartyCollection(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inStartDate As Date, ByVal inEndDate As Date) As clsInterestedPartyCollection` | Loads the interested parties whose attachment overlaps the requested window: those effective before the window ends and not cancelled before it starts, with still-open attachments always counted as overlapping. |

## Inherited public members

Members in this table whose Origin is `SAIF.Framework.Core` were retrieved from that library's documentation via the Legends CLI; the Origin column identifies the originating class for each member.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| First | `Sub First()` | Moves the current-item pointer to the first item in the BOF collection. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Last | `Sub Last()` | Moves the current-item pointer to the last item in the BOF collection. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Next | `Sub Next()` | Advances the current-item pointer to the next item. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Previous | `Sub Previous()` | Moves the current-item pointer to the previous item. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| SetCurrent | `Sub SetCurrent(item As Object)` | Sets the current item used by traversal-aware consumers. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Traverse | `Sub Traverse(...)` | Exposes BOF collection traversal behavior to callers that walk the list surface. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Error | `ReadOnly Property Error As String` | Surfaces collection-level validation or broken-rule text to data-binding consumers. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Item(columnName) | `ReadOnly Property Item(columnName As String) As String` | Returns column-specific validation error text through `IDataErrorInfo`. | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |

## Behavioral notes
- Related operations, rules, and SQL are cross-referenced from the library-level documentation.

## Constraints and usage notes
- The library exposes read-only retrieval behavior; no type in this package can persist changes through live criteria SQL.

> **Note:** Inherited-member descriptions attributed to `SAIF.Framework.Core` in the Origin column were retrieved from that library's documentation via the Legends CLI and should be reverified if the dependency version changes.

## Sources
- `Business\SAIF.Business.Policy.Affiliate\clsInterestedPartyCollection.vb`
