---
title: SAIF.Presentation.Web.MVC dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.MVC
reference_type: package
---

# SAIF.Presentation.Web.MVC dependencies

## Internal dependencies

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| SAIF.Business.Menu (no documentation set built yet in this run) | Project Reference | `NavigationContext` consumes `clsMenuAuthorizedItemCollection`, `clsMenuAuthorizedItem`, `clsApplicationCodeCollection`, `clsApplicationCode`, and `clsMenuCategoryCodeCollection` to resolve and cache the current user's authorized menu items |
| SAIF.Presentation (no documentation set built yet in this run) | Project Reference | Imported by `clsModelBase`; supplies presentation-layer types used across the MVC base* |
| SAIF.Framework | NuGet Package | Assembly reference (from `SAIF.BOF.Framework` package, 1.0.21217.2) supplying `clsSecurityPrincipal`, `clsLogTrace`, `clsLogError`, `clsConnection`, `clsEnvironment`, `AppGlobal.EnvironmentService`, `EnvironmentConfigKeys`, `clsMSOracleDataLayer`, `IDataPortalInfo` |
| SAIF.Framework.Preferences | NuGet Package | Supplies `clsPreferences`, used by `clsModelBase.Pre_Init` for per-user preference loading |
| SAIF.Framework.Common | NuGet Package | Assembly reference (1.0.18145.1); no direct type usage found in live source** |
| SAIF.HashUtil | NuGet Package | Assembly reference (1.0.18067.1); no direct type usage found in live source** |
| SAIF.Web.API.Clients | NuGet Package | Assembly reference (1.0.21215.2); no direct type usage found in live source** |
| SAIF.Web.API.Core | NuGet Package | Assembly reference; no direct type usage found in live source** |

## External dependencies
| Dependency | Version | Usage |
| --- | --- | --- |
| Newtonsoft.Json | 8.0.3 | Assembly reference plus `app.config` binding redirect; no direct usage in live source** |
| RestSharp | 105.2.3 | Assembly reference; no direct usage in live source** |

## Transitive dependencies

Dependencies in this section are inherited from dependency framework libraries. They are not directly referenced by this library but are required at runtime through framework packages.

| Dependency | Source framework | Type | Usage |
| --- | --- | --- | --- |
| `clsRulesManager` (rule evaluation), broken-rules/`IDataErrorInfo` validation state | `SAIF.Framework.Core` | Transitive | Inherited business-object rule-evaluation infrastructure surfaced through `clsBusinessBase`; not directly used by this library but present in the shared framework surface consumed by BOF business objects elsewhere in the solution† |
| `BeginEdit`/`CancelEdit`/`ApplyEdit` edit-lifecycle, `Save`/`SaveChild` persistence pipeline | `SAIF.Framework.Core` | Transitive | Inherited business-object edit and save lifecycle owned by `clsBusinessBase`† |

## Dependency risks and notes
- This library reads nine runtime configuration keys through three channels (`AppGlobal.EnvironmentService.GetConfigSetting`, `ConfigurationManager.AppSettings`, and a `System.Diagnostics.TraceSwitch`) and ships defaults for none of them; every hosting web application must declare all nine in its own `web.config`.*
- Two database engines are consumed directly/indirectly with hard-coded connection parameters: SQL Server (`APPM` database, `NETFRAMEWORK` application tag) for the `Context` hand-off table, and Oracle (`MENU` schema/user) for menu authorization data via `SAIF.Business.Menu`. Relocating either store requires a code change, not a configuration change.
- `SAIF.Framework.Common`, `SAIF.HashUtil`, `SAIF.Web.API.Clients`, `SAIF.Web.API.Core`, `Newtonsoft.Json`, and `RestSharp` are referenced by the project but no live source references a type from any of them; they may be required only transitively at runtime by the framework packages.**
- The packaging `.nuspec` declares dependencies only on `SAIF.BOF.Framework`, `SAIF.Framework.Common`, and `SAIF.HashUtil`; it omits `SAIF.Web.API.Clients`, `Newtonsoft.Json`, and `RestSharp`, which this library's project also references. Consumers relying on the packaged source would need to supply these themselves.*
- `System.Data.OracleClient` is referenced by the project, but Oracle access for menu authorization is performed inside `SAIF.Business.Menu`/the framework data layer, not directly in this library's code; the reference may be vestigial.**
- Authorization depends on the framework-supplied `clsSecurityPrincipal` for identity; this library performs no AD group lookups itself and treats identity establishment as an external concern of the `SAIF.Framework` package.

## Inherited framework context (from Legends CLI)

The following content is retrieved from `SAIF.Framework.Core`'s own documentation via the Legends CLI RAG service, resolving the `clsBusinessBase` framework base-class reference detected in this run's library density scan (`frameworkDensity=1`). This library does not itself derive from `clsBusinessBase`, but it depends on `SAIF.Business.Menu`, whose object model inherits from it; the inherited context below is provided for cross-layer traceability.

### API

`clsBusinessBase` is documented as exposing the following public members†:

- `MyGuid` — `Public ReadOnly Property MyGuid() As String`†
- `IsNew` — `Public ReadOnly Property IsNew() As Boolean`†
- `IsDeleted` — `Public ReadOnly Property IsDeleted() As Boolean`†
- `SetValueOnChange(Of T)` — `Public Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean`†
- `Rules` — `Public ReadOnly Property Rules() As clsRulesManager`†
- `Save` — `Public Overridable Function Save() As Boolean`†
- `SaveChild` — `Public Overridable Function SaveChild() As Boolean`†
- `ToXml` — `Public Function ToXml() As String`†

### Business rules

- `clsBusinessBase` evaluates registered rules through a `clsRulesManager`.†
- When a rule fails, the object records broken-rule state in a broken-rules collection.†
- Validation state is surfaced through `IDataErrorInfo` so UI/data-binding consumers can see errors.†
- `IsValid` becomes `False` when broken rules exist, and the broken-rules collection carries the messages until the condition clears.†
- Rule evaluation is triggered by property changes or lifecycle methods; derived types are expected to use the framework's lifecycle hooks rather than bypassing the rule system.†

### Operations and processes

- **Business object edit lifecycle** — snapshot, restore, and commit in-memory object edits through `BeginEdit()`, `CancelEdit()`, and `ApplyEdit()`, provided by `clsBusinessBase` (origin: `SAIF.Framework.Core`).†
- **Business object save lifecycle** — persist root or child business objects through the framework `Save()` and `SaveChild()` pipeline, provided by `clsBusinessBase` (origin: `SAIF.Framework.Core`).†
- Additional inherited framework lifecycle operations documented for `clsBusinessBase` in `SAIF.Framework.Core`: create/retrieve business object, save business object, edit lifecycle, rule evaluation, and data portal lifecycle hooks.†

### Dependencies

`clsBusinessBase` appears as a transitive dependency across multiple libraries in the wider SAIF solution, with usage documented as†:

- Supplies entity edit-state management and rules-engine ownership (e.g. `SAIF.Business.Claim.SupportOrder`, `SAIF.Business.Claim.ThirdParty`).†
- Supplies shared framework security primitives behind BOF object infrastructure and validation flow (e.g. `SAIF.Business.Claim`, `SAIF.Business.Claim.Authority`).†
- Provides `clsBusinessBase`, `clsBusinessCollectionBase`, smart types, SQL helpers, and the BOF data portal (e.g. `SAIF.Business.Policy.Correspondence`).†

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Configuration](configuration.md)
- [Security and authorization](security-authorization.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `†` are derived from dependency library documentation via the Legends CLI. Statements marked with `*` were inferred from code structure or contextual evidence. Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- SAIF.Presentation.Web.MVC/SAIF.Presentation.Web.MVC.vbproj
- SAIF.Presentation.Web.MVC/packages.config
- SAIF.Presentation.Web.MVC/app.config
- SAIF.Presentation.Web.MVC/clsContext.vb
- SAIF.Presentation.Web.MVC/clsControllerBase.vb
- SAIF.Presentation.Web.MVC/clsModelBase.vb
- SAIF.Presentation.Web.MVC/NavigationContext.vb
- SAIF.BOF.Presentation.Web.Infragistics111.nuspec
