---
title: SAIF.Presentation.Web.Core.Infragistics103 operations and processes
summary: Business and technical operations supported by this library.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Core.Infragistics103
reference_type: package
---

# SAIF.Presentation.Web.Core.Infragistics103 operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
| --- | --- | --- | --- | --- | --- |
| [Build authorized navigation context](operations/build-authorized-navigation-context.md) | Load the set of menu items a user is authorized to see | Application code constructs `New NavigationContext(user)` | User identifier string | Populated `NavigationContext` with `MenuAuthorizedItems` | [BR-NC-001](business-rules.md#br-nc-001-menu-visibility-is-restricted-to-authorized-items) |
| [Resolve current menu item / page identity](operations/resolve-current-menu-item-page-identity.md) | Determine the current page's authorized menu item | Page code requests its own menu/page identity | Category string, current request URL | `clsMenuAuthorizedItem` or `Nothing` | [BR-NC-002](business-rules.md#br-nc-002-exact-match-is-preferred-over-fallback-match-for-menu-resolution) |
| [Page initialization and session keep-alive](operations/page-initialization-and-session-keep-alive.md) | Initialize page state and register a session keep-alive script | ASP.NET `Init`/`Load` lifecycle on any `AppViewPageBase`-derived page | Page/session state | Registered client script blocks, control CSS resets | [BR-AVPB-001](business-rules.md#br-avpb-001-session-keep-alive-only-applies-to-internal-non-external-clients) |
| [Grid column/sort/size preference persistence](operations/grid-preference-persistence.md) | Apply, save, and clear per-user grid layout preferences | Explicit call from consuming page code around grid data-bind/postback | Grid instance, optional size div | Grid layout applied/persisted, or an ORDER BY-style string | — |
| [Highlight grid rows/cells with broken business rules](operations/highlight-grid-rows-with-broken-business-rules.md) | Visually flag grid cells bound to invalid business-object properties | Explicit call after a save/validate attempt on a `WebDataGrid` | The grid | `Boolean` (whether any error was found), CSS/focus side effects | [BR-AVPB-002](business-rules.md#br-avpb-002-broken-business-rules-are-visually-flagged-on-their-bound-grid-cell) |
| [Send email via legacy SOAP mail service](operations/send-email-via-legacy-soap-mail-service.md) | Send outbound email with or without an attachment | Explicit call from consuming application code | To/from/subject/(optional message, attachment) | `Boolean` result* | — |
| [Stream a file download](operations/stream-a-file-download.md) | Stream an existing file to the HTTP response as a download | Explicit call from consuming page code | Virtual filename, hosting page | HTTP response written with file bytes | [BR-CMM-001](business-rules.md#br-cmm-001-only-txt-and-csv-extensions-receive-an-explicit-content-type) |
| [Focus-control script generation](operations/focus-control-script-generation.md) | Generate client-side JavaScript that focuses a target control on page render | `Page_PreRender` on any `AppViewMasterPageBase`-derived master page | `FocusControl` property | Registered startup script | — |

## Inherited operations and processes

This section documents an operation performed by a base-framework type this library's `AppViewPageBase` extends. It is retrieved from `SAIF.Presentation.Web.MVC`'s own documentation and is listed here so this page's operation coverage is self-contained; see that library's [operations and processes page](../saif-presentation-web-mvc/operations-processes.md#operation-catalog) for further detail.

### From ViewPageBase (SAIF.Presentation.Web.MVC)

| Operation | Intent | Trigger | Inputs | Outputs | Rules |
| --- | --- | --- | --- | --- | --- |
| [Page/control lifecycle initialization](../saif-presentation-web-mvc/operations/page-control-lifecycle-initialization.md) | Orchestrate the WebForms page/control request lifecycle: timeout check, authentication, menu authorization, model pre-init, query-string handling.† | `ViewPageBase.Page_Init` / `ViewControlBase.Page_Init`, invoked ahead of `AppViewPageBase`'s own `Page_Init`/`Page_Load` handling (`CallSessionPing`, grid preference application).† | Current `HttpContext` (session, query string, request path)† | Populated `Model`, `Session("navdata")`, possible redirect/response termination† | [INH-MVC-008](business-rules.md#inh-mvc-008-internal-address-classification-inherited-from-saifpresentationwebmvc) |

## Process flow diagram
The following diagram visualizes the primary operational flow from page request through navigation-context resolution and grid/UI rendering.

```mermaid
flowchart TD
	Start([Page request]) --> Init[Page_Init / Page_Load]
	Init --> Ping[CallSessionPing]
	Init --> Nav[Build/resolve NavigationContext]
	Nav --> Auth{Authorized item found?}
	Auth -->|Yes| Render[Render page, apply grid preferences]
	Auth -->|No| Fallback[Nothing returned, page continues unauthorized-item handling]
	Render --> Save{User saves data?}
	Save -->|Yes, validation fails| Highlight[Highlight grid rows with broken rules]
	Save -->|Yes, validation passes| Persist[Persist preferences / send mail / stream download]
	Save -->|No| EndNoop([End])
```

## Failure and edge-case behavior
- `NavigationContext.New` has no branch/error handling in the constructor; failures surface as unhandled exceptions from the Oracle data layer or `SAIF.Business.Menu` collection calls.
- `GetItem`/`GetCurrentItem`/`GetCurrentPage` return `Nothing`/empty result without further lookup when the application code itself cannot be resolved.
- `ApplySortPreferences` wraps each column application in a `Try/Catch` that silently ignores a missing/renamed column key.
- `SetErrorColorInGrid` silently skips a broken-rule-to-cell lookup failure via `Try/Catch` (e.g., column not present in the grid).
- `SendMail`/`SendMailWithAttachment` have no error handling around the SOAP call; a service fault propagates as an unhandled exception.
- Accessing `Help*` properties before `HelpFolderName` is set throws an unhandled `ApplicationException`.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Configuration settings](configuration.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.Core.Infragistics103\NavigationContext.vb
- SAIF.Presentation.Web.Core.Infragistics103\AppViewPageBase.aspx.vb
- SAIF.Presentation.Web.Core.Infragistics103\AppViewMasterPageBase.vb
- SAIF.Presentation.Web.Core.Infragistics103\clsMailMessage.vb
- SAIF.Presentation.Web.MVC\ViewPageBase.aspx.vb (via `SAIF.Presentation.Web.MVC` documentation)
