---
title: clsProviderLocationCollection
summary: API reference for clsProviderLocationCollection.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-24
library: SAIF.Business.View.Provider
reference_type: package
---

# clsProviderLocationCollection

API reference for clsProviderLocationCollection.

## Purpose
- Collection wrapper (`clsBusinessCollection(Of clsProviderLocation)`) that retrieves the set of locations for a provider.
- Nested `Criteria` implements `IBusinessCriteria` and supplies its own `RetrieveSQL`.

## Context
- Namespace: `SAIF.Business.View.Provider`
- Assembly/package: `SAIF.BOF.Business.View.Provider`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ProviderID | `ReadOnly Property ProviderID() As Decimal` | Returns the provider ID this collection was loaded by, when retrieved via the by-provider overload. |
| ProviderTypeCode | `ReadOnly Property ProviderTypeCode() As String` | Returns the provider type code this collection was loaded by, when retrieved via the by-type overload. |
| Item(inID) | `Default Shadows ReadOnly Property Item(ByVal inID As Decimal) As clsProviderLocation` | Returns the location whose `ProviderLocationID` matches the supplied value, or `Nothing`. |
| CurrentItem | `Shadows ReadOnly Property CurrentItem() As clsProviderLocation` | Returns the current traversal item, strongly typed as `clsProviderLocation`. |
| FilterBy_ProviderTypeCode | `Function FilterBy_ProviderTypeCode(ByVal providerTypeCode As String) As clsProviderLocationCollection` | Returns locations matching `providerTypeCode` that are not ineligible today (delegates to `FilterBy_ProviderTypeCodeAndEffectiveDate` with `Today`). |
| FilterBy_ProviderTypeCodeAndEffectiveDate | `Function FilterBy_ProviderTypeCodeAndEffectiveDate(ByVal providerTypeCode As String, ByVal effectiveDate As Date) As clsProviderLocationCollection` | Returns locations matching `providerTypeCode` that were not ineligible on `effectiveDate`. |
| ToList | `Function ToList() As List(Of clsProviderLocation)` | Returns the collection's members as a strongly typed `List(Of clsProviderLocation)`. |
| Add | `Shadows Function Add(ByVal inProviderLocation As clsProviderLocation) As Integer` | Adds a location to the collection through the BOF base implementation. |
| Contains(inProviderLocation) | `Overloads Function Contains(ByVal inProviderLocation As clsProviderLocation) As Boolean` | Returns whether the active list contains a location equal to `inProviderLocation`. |
| Contains(inID) | `Overloads Function Contains(ByVal inID As Decimal) As Boolean` | Returns whether the active list contains a location whose `ProviderLocationID` matches the supplied value. |
| ContainsDeleted(inProviderLocation) | `Overloads Function ContainsDeleted(ByVal inProviderLocation As clsProviderLocation) As Boolean` | Returns whether the deleted-items list contains a location equal to `inProviderLocation`. |
| ContainsDeleted(inID) | `Overloads Function ContainsDeleted(ByVal inID As Decimal) As Boolean` | Returns whether the deleted-items list contains a location whose `ProviderLocationID` matches the supplied value. |
| Save() | `Overrides Function Save() As Boolean` | Applies the pending edit transaction, then persists the collection through the BOF base `Save()`. |
| GetProviderLocations(dpi, providerID) | `Shared Function GetProviderLocations(ByVal inDataportal As IDataPortalInfo, ByVal providerID As Decimal) As clsProviderLocationCollection` | Retrieves all locations for the given provider through [SQL-011](../../sql/SQL-011-saif-business-view-provider.md) (filtered `WHERE PROVIDER_SEQ_NUM = :ProviderID`). |
| GetProviderLocations(dpi, providerTypeCode) | `Shared Function GetProviderLocations(ByVal inDataportal As IDataPortalInfo, ByVal providerTypeCode As String) As clsProviderLocationCollection` | Retrieves all locations for the given provider type code through the same base query filtered `WHERE PROVIDER_TYPE_CODE = :ProviderTypeCode`. |

## Behavioral notes
- `BeforeRetrieve` appends `ProviderID` or `ProviderTypeCode` as the bind parameter depending on `MyCriteria.ProviderLocationFilterType`; the base `SELECT` is `clsProviderLocation.Criteria.RETRIEVE_SELECT_SQL` shared with [SQL-010](../../sql/SQL-010-saif-business-view-provider.md), with the `WHERE` clause appended per filter type — documented together as [SQL-011](../../sql/SQL-011-saif-business-view-provider.md).
- The nested `Criteria` throws `ApplicationException` from `CreateSQL`, `InsertSQL`, `UpdateSQL`, and `DeleteSQL`; the collection is retrieve-only for new-row creation even though `Save()` applies pending edits to already-loaded members.
- `IsValid`/`IsDirty` overrides are commented out in source, so this collection uses the unmodified `clsBusinessCollectionBase` implementations for both; a generic `Where(Predicate)` filter method is likewise commented out (only the two named `FilterBy_...` methods are active).

## Constraints and usage notes
- Instances are constructed only through the two `GetProviderLocations(...)` overloads; the `Protected Friend` constructor (which sets `AllowEdit`/`AllowRemove`/`AllowSort`/`AllowFind`/`Managed` to `True`) is not part of the public surface.

## Inherited members (from clsBusinessCollectionBase via clsBusinessCollection(Of T))

This collection type inherits the following public surface from clsBusinessCollectionBase (`Legacy\BusinessObjectFramework\clsBusinessCollectionBase.vb`), in addition to the members listed above:

| Member | Signature | Purpose |
| --- | --- | --- |
| Item | `Default Public ReadOnly Property Item(ByVal index As Integer) As clsBusinessBase` | Returns the collection member at the given index (default indexer). |
| Add | `Sub Add(ByVal inChild As clsBusinessBase)` | Adds a child business object to the collection. |
| Remove | `Sub Remove(ByVal inChild As clsBusinessBase)` | Marks a child business object as deleted and removes it from the active list. |
| ItemByGuid | `ReadOnly Property ItemByGuid(ByVal inGuid As String) As clsBusinessBase` | Returns the collection member matching the given internal GUID. |
| MyGuid | `ReadOnly Property MyGuid() As String` | Returns the internal GUID that uniquely identifies this in-memory collection instance. |
| IsDirty | `ReadOnly Property IsDirty() As Boolean` | Indicates whether the collection or any child member has unsaved changes. |
| IsValid | `Overridable ReadOnly Property IsValid() As Boolean` | Indicates whether all child members currently have no broken validation rules. |
| ValidateAllChildren | `Overridable Property ValidateAllChildren() As Boolean` | Controls whether every child is validated or only the current item. |
| Rules | `ReadOnly Property Rules() As clsRulesManager` | Returns the rules manager that tracks broken rules for the collection. |
| ErrorCount / ErrorMessages | `ReadOnly Property ErrorCount() As Integer` / `ReadOnly Property ErrorMessages() As String()` | Returns the count and text of broken error-severity rules across the collection. |
| WarningCount / WarningMessages | `ReadOnly Property WarningCount() As Integer` / `ReadOnly Property WarningMessages() As String()` | Returns the count and text of broken warning-severity rules across the collection. |
| InformationalCount / InformationalMessages | `ReadOnly Property InformationalCount() As Integer` / `ReadOnly Property InformationalMessages() As String()` | Returns the count and text of broken informational-severity rules across the collection. |
| BeginEdit / CancelEdit / ApplyEdit | `Sub BeginEdit()` / `Sub CancelEdit()` / `Sub ApplyEdit()` | Begins, rolls back, or commits an edit transaction across the collection. |
| SaveChild | `Overridable Function SaveChild() As Boolean` | Persists the collection as a child of a parent object. |
| Clone | `Function Clone() As Object` | Returns a deep copy of the collection and its members. |
| IsManaged | `ReadOnly Property IsManaged() As Boolean` | Indicates whether the collection is managed by a parent object's lifecycle. |
| First / FirstItem | `Function First() As clsBusinessBase` / `ReadOnly Property FirstItem() As clsBusinessBase` | Moves to and/or returns the first item in traversal order. |
| Next / NextItem | `Function [Next]() As clsBusinessBase` / `ReadOnly Property NextItem() As clsBusinessBase` | Moves to and/or returns the next item in traversal order. |
| Previous / PreviousItem | `Function Previous() As clsBusinessBase` / `ReadOnly Property PreviousItem() As clsBusinessBase` | Moves to and/or returns the previous item in traversal order. |
| Last / LastItem | `Function Last() As clsBusinessBase` / `ReadOnly Property LastItem() As clsBusinessBase` | Moves to and/or returns the last item in traversal order. |
| CurrentIndex | `ReadOnly Property CurrentIndex() As Integer` | Returns the index of the current traversal item. |
| SetCurrent | `Sub SetCurrent(ByRef inObject As clsBusinessBase)` / `Sub SetCurrent(ByVal inIndex As Integer)` | Sets the current traversal position by item or index. |
| IndexOf | `ReadOnly Property IndexOf(ByVal inObject As clsBusinessBase) As Integer` | Returns the index of the given item within the collection. |
| IsFirst / IsNext / IsLast / IsPrevious / IsCurrent | `ReadOnly Property IsFirst(ByVal inItem As clsBusinessBase) As Boolean` (and analogous overloads) | Indicate an item's position relative to the current traversal state. |
| XMLElementName / XMLItemName | `Property XMLElementName() As String` / `Property XMLItemName() As String` | Get or set the XML element/item names used when serializing the collection. |
| GetReportXML | `Function GetReportXML(ByVal inElementName As String) As String` (and file-stream overload) | Returns an XML fragment representing the collection and its members. |
| ToXML / ToXml | `Function ToXML() As String` / `Function ToXml(ByVal inTagName As String) As String` | Serializes the collection to XML using the default or a supplied tag name. |

## Sources
- `Business\SAIF.Business.View.Provider\clsProviderLocationCollection.vb`
