Skip to content

SAIF.Business.View.Policy overview

Documentation context: Packaged Component (NuGet)

SAIF.Business.View.Policy is the read side of the policy domain. It assembles a policy header and everything that hangs off it — agency, addresses, policy periods, staff assignments, trading-as names, affiliated policies, and policy-to-policy associations — into aggregates that claim-facing and policy-facing applications can consume without writing SQL. It also owns the decision about whether the signed-in principal is allowed to see a given policy at all. The library has no write path: every type is retrieved through a shared factory method and is read-only thereafter.

Purpose

  • Provide read-optimised policy aggregates to consuming applications, composing child objects lazily so that a caller pays only for the parts of a policy it touches.
  • Decide, for the current security principal, whether a policy may be viewed and which policies make up that principal's permitted list.
  • Ship as the SAIF.BOF.Business.View.Policy NuGet package, consumed by application and orchestration layers such as SAIF.Application.Policy.

Responsibilities

Key components

  • clsPolicyData: the central read-only policy header aggregate and the entry point for nearly every read in the library.
  • clsPolicySecurity: the only authorization class; owns the per-policy access decision and the permitted policy list.
  • clsAgency, clsPolicyAddress, clsPolicyPeriod(Collection), clsTeamAssignment(Collection), clsTradingAs(Collection), clsNonEmployerAccount: independent read-only supporting aggregates.
  • PolicyAssociationList and PolicyAssociationExtensions: the legacy inline-SQL association subsystem.
  • clsAssociationTypeCode, clsAssociationTypeFactory, clsPolicyHeaderAssociationFactory: the code-table-driven association subsystem that supersedes it.
  • PolicyStatusEnums, AssociationTypes, clsPolicyData.UserAccessLevels: the vocabularies consumers compare against instead of raw codes.

Scope notes

  • Configuration is minimal but architecturally significant: three settings configure a second, non-Oracle SQL Server data store used by the authorization path. See Configuration.
  • Six .vb files in the project folder are excluded from the <Compile> item group and are not part of the shipped assembly: clsMCOCollection.vb, clsPolicyMCO.vb, clsPolicyMCOCollection.vb, clsPayrollClassInfo.vb, clsPayrollClassInfoCollection.vb, and clsPolicySearch.vb. They are not documented as part of the public API surface.
  • The Institutions typed dataset is generated from Institutions.xsd and has no call site in this library.**

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

  • Business/SAIF.Business.View.Policy/SAIF.BOF.Business.View.Policy.vbproj
  • Business/SAIF.Business.View.Policy/SAIF.BOF.Business.View.Policy.nuspec
  • Business/SAIF.Business.View.Policy/clsPolicyData.vb
  • Business/SAIF.Business.View.Policy/clsPolicySecurity.vb