Skip to content

SAIF.Presentation overview

Documentation context: Packaged Component (NuGet)

SAIF.Presentation is a single-purpose presentation-tier library that provides a per-user, per-application/page preference (settings) store for SAIF web and Windows Forms applications, mediating between calling UI code and the SAIF BOF data-access layer.

Purpose

  • Provide an in-memory, per-user preference (settings) cache that is loaded once on construction and can be read and mutated without a database round-trip.
  • Offer scoped preference storage — application-level, page-level, and web-level — so consuming UI code can store settings appropriate to its own granularity (e.g., a single control's page vs. an entire application).
  • Persist accumulated in-memory changes back to the Oracle-backed preference store on demand via an explicit Save() call, delegating all SQL/BOF persistence work to SAIF.Framework.Preferences.PreferenceData.
  • Consumed by other SAIF presentation-tier libraries (SAIF.Presentation.Web.Core.Infragistics103, SAIF.Presentation.Web.MVC, SAIF.Presentation.Web.Controls.V2.Menu, SAIF.Presentation.Web.Controls.AJAX.Infragistics103) as a same-repo project reference, recompiled from source rather than consumed as a compiled binary*.

Responsibilities

  • Cache all Preference groups for the authenticated portal user in memory on construction.
  • Provide scoped read/write access to preference key-value pairs via the Item indexer and the Add/Remove/Clear/Delete members.
  • Resolve the "current page" identity via web request path parsing or, in non-web contexts, an explicit override or stack-trace-based inference*.
  • Persist in-memory preference changes to the Oracle-backed PreferenceData store on explicit Save() calls.
  • Resolve its own Oracle connection target through the SAIF.Framework.Common environment-service abstraction rather than reading local configuration (see Configuration).

Key components

  • clsPreferences: the sole public service — an in-memory preference cache plus a thin persistence-orchestration layer over PreferenceData.
  • PrefScope: a public enum (AppLevel, PageLevel, WebLevel) that defines the boundary at which a preference key is stored/retrieved.

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

  • SAIF.Presentation\clsPreferences.vb
  • SAIF.Presentation\SAIF.Presentation.vbproj
  • SAIF.BOF.Presentation.Web.Infragistics103.nuspec