clsContext¶
clsContext is the cross-request/cross-application state bag every clsModelBase carries. It holds the business hand-off values (claim ID, policy number, SAIF claim number, provider location sequence number) a page needs to survive both postbacks and navigation to a different SAIF web application, and owns a private, direct-ADO.NET repository (clsContextRepository/clsSQL) that persists those values to a SQL Server Context table rather than using the standard BOF IBusinessCriteria pattern.
Purpose¶
- Stores arbitrary named context values in an in-memory hashtable (
SetContext/GetContext) for the duration of a request/session. - Persists and retrieves those values across application boundaries via
SaveContext/RetrieveContext, backing BR-MVC-005. - Resolves a session's "page ID" (
SAIFPID_NAME) viaGetPID, used byclsControllerBase.CheckContextViewID(). - Carries the current
clsSecurityPrincipalfor the request, consumed byclsControllerBase.SecurityCheck().
Context¶
- Namespace:
SAIF.Presentation.Web.MVC - Assembly/package:
SAIF.BOF.Presentation.Web.Infragistics103(source-bundled)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
ApplicationName |
Friend Property ApplicationName() As String |
Application name this context instance is scoped to; used as the AppName key for all Context table rows this instance saves/deletes. |
claimId |
Public Property claimId() As Decimal |
Claim identifier hand-off value, backed by the "claimId" context key. |
policyNum |
Public Property policyNum() As Integer |
Policy number hand-off value, backed by the "policyNum" context key. |
SAIFClaimNum |
Public Property SAIFClaimNum() As String |
SAIF claim number hand-off value, backed by the "SAIFClaimNum" context key; initialized to "" in both constructors. |
ProviderLocationSeqNum |
Public Property ProviderLocationSeqNum() As Integer |
Provider location sequence number hand-off value, backed by the "ProviderLocationSeqNum" context key. |
SecurityPrincipal |
Public Property SecurityPrincipal() As clsSecurityPrincipal |
Holds the authenticated principal for the current request once clsControllerBase.SecurityCheck() resolves it. |
UserName |
Public ReadOnly Property UserName() As String (marked Obsolete) |
Returns the security principal's username as-cased; deprecated in favor of UserID. |
UserID |
Public ReadOnly Property UserID() As String |
Returns the security principal's username, upper-cased; "" if no principal is set. |
New() |
Public Sub New() |
Initializes the internal hashtable and seeds "SAIFClaimNum" to "". |
New(inAppName) |
Public Sub New(ByVal inAppName As String) |
Same as the parameterless constructor, additionally setting ApplicationName. |
GetContext |
Public Function GetContext(ByVal key As String) As String |
Returns the in-memory value for key, or Nothing if not set. |
SetContext |
Public Sub SetContext(ByVal key As String, ByVal value As String) |
Sets/overwrites the in-memory value for key. |
RetrieveContext |
Protected Friend Function RetrieveContext(ByVal SourceAppName As String, ByVal CurrentAppName As String, ByVal inSessionID As String) As Hashtable |
Reads context rows left by SourceAppName for inSessionID (excluding rows already belonging to CurrentAppName) via SQL-MVC-002, then deletes them via SQL-MVC-004; returns the values as a Hashtable keyed by ContextName. |
SaveContext |
Protected Friend Sub SaveContext(ByVal inSessionID As String) |
Deletes any prior rows for ApplicationName/inSessionID via SQL-MVC-004, then inserts one row per in-memory context key via SQL-MVC-001 — a delete-then-reinsert "upsert via replace" pattern. |
GetPID |
Protected Friend Function GetPID(ByVal inSessionID As String, ByVal inContextName As String) As String |
Looks up a single named context value via SQL-MVC-003; returns "" if no matching row is found. |
Behavioral notes¶
- All ADO.NET access lives in a private nested class,
clsContextRepository, and a private nested SQL-text provider,clsSQL— neither is part of this type's public surface, but their behavior is fully documented in the SQL catalog. RetrieveContextandSaveContextboth wrap ADO.NET exceptions in anApplicationExceptionwith a fixed message (e.g.,"Context Repository Retrieve Failed."), preserving the original exception asInnerException.- No
Updateoperation exists against theContexttable;SaveContextalways deletes then re-inserts rather than updating in place.
Constraints and usage notes¶
ApplicationNameisFriend-scoped (assembly-internal), so consuming applications outside this assembly cannot read/set it directly; it is populated byclsControllerBase's constructor viaModel.Context.ApplicationName = m_ApplicationName.RetrieveContext,SaveContext, andGetPIDareProtected Friend— intended to be called only from within this library (primarilyclsControllerBase), not directly by consuming application code.
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.Web.MVC\clsContext.vb