---
title: clsProviderRelationshipApi
summary: API adapter for provider relationship operations.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Provider
reference_type: package
---

# clsProviderRelationshipApi

API adapter for provider relationship operations.

## Purpose
- Wrap BOF API-client routing and result handling for this integration surface.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ProviderRelationshipDto | `Property ProviderRelationshipDto As ProviderRelationshipDto` | Exposes the provider relationship DTO value on this type. |
| ProviderLocationSeqNumber | `Property ProviderLocationSeqNumber As Decimal` | Stores the provider location seq number value. |
| AddProviderRelationship | `Shared Function AddProviderRelationship(ByVal inDataportal As IDataPortalInfo, ByVal providerRelationshipDto As ProviderRelationshipDto, ByVal providerLocationSeqNumber As Decimal ) As clsProviderRelationshipApi` | Adds provider relationship through the API adapter. |
| UpdateProviderRelationship | `Shared Function UpdateProviderRelationship(ByVal inDataportal As IDataPortalInfo, providerRelationshipDto As ProviderRelationshipDto, ByVal providerLocationSeqNumber As Decimal ) As clsProviderRelationshipApi` | Updates provider relationship through the API adapter. |
| DeleteProviderRelationship | `Shared Function DeleteProviderRelationship(ByVal inDataportal As IDataPortalInfo, ByVal providerRelationshipDto As ProviderRelationshipDto, ByVal providerLocationSeqNumber As Decimal ) As clsProviderRelationshipApi` | Removes provider relationship through the API adapter. |

## Behavioral notes
- This type formats API routes through BOF criteria objects and applies API results back onto the adapter.

## Constraints and usage notes
- Use the adapter's public factory or operation methods instead of constructing routes manually.

## Inherited members (from clsBusinessApiBase)

This type inherits the following public surface from clsBusinessApiBase (`Services\SAIF.Services.Printing.Remote\packages\SAIF.BOF.Framework.2.0.22103.3\src\SAIF.BOF.Framework.Core\V1\Api\clsBusinessApiBase.vb`), in addition to the members listed above:

| Member | Signature | Purpose |
| --- | --- | --- |
| MyGuid | `ReadOnly Property MyGuid() As String` | Returns the internal GUID that uniquely identifies this in-memory API object instance. |
| IsNew | `ReadOnly Property IsNew() As Boolean` | Indicates whether the adapter instance represents unsaved API state. |
| IsDeleted | `ReadOnly Property IsDeleted() As Boolean` | Indicates whether the adapter has been marked for deletion. |
| IsDirty | `Overridable ReadOnly Property IsDirty() As Boolean` | Indicates whether this API object has unsaved changes. |
| SetValueOnChange | `Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Updates a backing field only when the new value differs. |
| SetValueOnChange (tracked) | `Function SetValueOnChange(Of T)(propertyName As String, ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Updates a tracked backing field and records the modification only when the new value differs. |
| RegisterProperty | `Sub RegisterProperty(propertyName As String, originalValue As Object, Optional forceReset As Boolean = True)` | Registers a property for modification tracking. |
| GetTrackedProperty | `Function GetTrackedProperty(propertyName As String, Optional createIfEmpty As Boolean = True) As ITrackedProperty` | Returns tracked-property metadata for the supplied property name. |
| TrackedProperties | `ReadOnly Property TrackedProperties As IEnumerable(Of ITrackedProperty)` | Returns all registered tracked properties. |
| ModifiedProperties | `ReadOnly Property ModifiedProperties As IEnumerable(Of ITrackedProperty)` | Returns only tracked properties whose values have changed. |
| RegisterPropertiesForTracking | `Overridable Sub RegisterPropertiesForTracking()` | Allows derived types to register properties after create/fill operations. |
| IsSavable | `Overridable ReadOnly Property IsSavable() As Boolean` | Indicates whether the object is both dirty and valid. |
| PreviousLinkItem / NextLinkItem | `ReadOnly Property PreviousLinkItem() As ILinkItem` / `ReadOnly Property NextLinkItem() As ILinkItem` | Returns the adjacent linked-list items for collection traversal. |
| SetPreviousLink / SetNextLink | `Sub SetPreviousLink(ByRef inLinkItem As ILinkItem)` / `Sub SetNextLink(ByRef inLinkItem As ILinkItem)` | Wires the object into a linked list maintained by the BOF framework. |
| InsertLinkAfter / InsertLinkBefore | `Sub InsertLinkAfter(ByRef inLinkItem As ILinkItem)` / `Sub InsertLinkBefore(ByRef inLinkItem As ILinkItem)` | Inserts another link item relative to the current object. |
| RemoveLinks | `Sub RemoveLinks()` | Detaches the object from its linked-list neighbors. |
| BeginEdit / CancelEdit / ApplyEdit | `Sub BeginEdit()` / `Sub CancelEdit()` / `Sub ApplyEdit()` | Starts, rolls back, or commits an editable snapshot transaction. |
| Delete | `Sub Delete()` | Marks the object for deletion on the next save. |
| Clone | `Function Clone() As Object` | Returns a deep copy of the API object. |
| IsCopyInProgress | `ReadOnly Property IsCopyInProgress() As Boolean` | Indicates whether the framework is currently copying the object. |
| ValidateOnDelete | `Property ValidateOnDelete() As Boolean` | Controls whether business rules are checked before delete operations. |
| Rules | `ReadOnly Property Rules() As clsRulesManager` | Returns the rules manager that tracks broken rules for this object. |
| IsValid | `Overridable ReadOnly Property IsValid() As Boolean` | Indicates whether the object currently has no broken validation rules. |
| ErrorCount / ErrorMessages | `ReadOnly Property ErrorCount() As Integer` / `ReadOnly Property ErrorMessages() As String()` | Returns the count and text of broken error-severity rules. |
| WarningCount / WarningMessages | `ReadOnly Property WarningCount() As Integer` / `ReadOnly Property WarningMessages() As String()` | Returns the count and text of broken warning-severity rules. |
| InformationalCount / InformationalMessages | `ReadOnly Property InformationalCount() As Integer` / `ReadOnly Property InformationalMessages() As String()` | Returns the count and text of broken informational-severity rules. |
| Save | `Overridable Function Save() As Boolean` | Persists the API object through the BOF data portal when valid. |
| SaveChild | `Overridable Function SaveChild() As Boolean` | Persists the object as a child of a parent object or collection. |
| XMLElementName | `Property XMLElementName() As String` | Gets or sets the XML element name used when serializing this object. |
| GetDataset | `Sub GetDataset(ByRef inDS As DataSet)` | Populates a `DataSet` with the object's field values. |
| GetDataset (named table) | `Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String)` | Populates a named `DataSet` table with the object's field values. |
| GetReportXML | `Function GetReportXML(ByVal inElementName As String) As String` / `Function GetReportXML() As String` | Returns XML representing the object using the supplied or default element name. |
| ToXml | `Function ToXml() As String` / `Function ToXml(ByVal inTagName As String) As String` | Serializes the object to XML using the default or a supplied element name. |

`clsBusinessApiBase` declares no explicit constructor, so derived API adapters rely on the compiler-supplied parameterless base constructor.

### Protected extensibility members

| Member | Signature | Purpose |
| --- | --- | --- |
| MarkNew / MarkOld / MarkDeleted / MarkDirty / MarkClean | `Protected Overridable Sub MarkNew()` / `Protected Overridable Sub MarkOld()` / `Protected Overridable Sub MarkDeleted()` / `Protected Overridable Sub MarkDirty()` / `Protected Friend Overridable Sub MarkClean()` | Manage the object's new/deleted/dirty lifecycle state inside derived adapters. |
| Parent / ParentObject / SetParent | `Protected ReadOnly Property Parent() As clsBusinessCollectionApiBase` / `Protected Friend Property ParentObject() As Object` / `Protected Friend Sub SetParent(ByVal inParent As clsBusinessCollectionApiBase)` | Expose and maintain parent-collection or parent-object relationships. |
| AddChildObject | `Protected Friend Sub AddChildObject(ByVal inChild As clsBusinessCollectionApiBase)` / `Protected Friend Sub AddChildObject(ByVal inChild As clsBusinessApiBase)` | Registers child API objects or child collections against the current parent object. |
| IsChild / MarkAsChild | `Protected Friend ReadOnly Property IsChild() As Boolean` / `Protected Friend Sub MarkAsChild()` | Identifies or marks the object as a child in the BOF object graph. |
| AllowCopy / BeforeCopy / AfterCopy / Copy / OnCopy | `Protected Friend Overridable Property AllowCopy() As Boolean` / `Protected Friend Overridable Sub BeforeCopy()` / `Protected Friend Overridable Sub AfterCopy(ByRef inCopiedObject As clsBusinessApiBase)` / `Protected Friend Function Copy() As clsBusinessApiBase` / `Protected Friend Overridable Sub OnCopy()` | Customizes clone/copy behavior for derived adapters. |
| AddBusinessRules / CheckRules / RemoveMessage | `Protected Friend Overridable Sub AddBusinessRules()` / `Protected Sub CheckRules()` / `Protected Sub CheckRules(ByVal inRuleIdentifier As String)` / `Protected Friend Sub RemoveMessage(ByVal inMessageID As String)` | Defines, re-evaluates, and removes business-rule messages. |
| ValidateChildObject / ValidateChildObjects | `Protected Overridable Function ValidateChildObject(ByVal inChild As clsBusinessApiBase) As Boolean` / `Protected Overridable Function ValidateChildObject(ByVal inChild As clsBusinessCollectionApiBase) As Boolean` / `Protected Overridable Function ValidateChildObjects(ByVal childObjects As IEnumerable(Of clsBusinessApiBase)) As Boolean` / `Protected Overridable Function ValidateChildObjects(ByVal childObjects As IEnumerable(Of clsBusinessCollectionApiBase)) As Boolean` / `Protected Overridable Function ValidateChildObjects(ByVal childObjects As IEnumerable(Of clsBusinessApiBase), ByVal childCollections As IEnumerable(Of clsBusinessCollectionApiBase)) As Boolean` | Validates child objects and child collections before save operations. |
| SaveChildObject | `Protected Overridable Function SaveChildObject(ByVal inChild As clsBusinessApiBase) As Boolean` / `Protected Overridable Function SaveChildObject(ByVal inChild As clsBusinessCollectionApiBase) As Boolean` | Persists a child object or child collection from within a derived adapter. |
| Deserialized / Serialized / Serializing | `Protected Overridable Sub Deserialized()` / `Protected Overridable Sub Serialized()` / `Protected Overridable Sub Serializing()` | Provides serialization lifecycle hooks for derived adapters. |
| ReadOnly | `Protected WriteOnly Property [ReadOnly]() As Boolean` | Propagates read-only state to the underlying undoable base implementation. |
| IsRecursiveProperty / IsXMLProperty | `Protected Overridable Function IsRecursiveProperty(ByVal inProp As Reflection.PropertyInfo) As Boolean` / `Protected Overridable Function IsXMLProperty(ByVal inProp As Reflection.PropertyInfo) As Boolean` / `Protected Overridable Function IsXMLProperty(ByVal inPropertyName As String) As Boolean` | Filters which properties participate in recursive or XML serialization. |
## Sources
- `Business\SAIF.Business.Provider\Api\clsProviderRelationshipApi.vb`
