Skip to content

SAIF.Business.Menu overview

Documentation context: Packaged Component (NuGet)

SAIF.Business.Menu is a SAIF BOF (Business Object Framework) business library (assembly SAIF.Business.Menu, root namespace SAIF.Business.Menu) that models the SAIF web menu system: applications, menu categories, menu pages, menu items, per-item security groups, group memberships, and per-user favorites. It is packaged into the shared SAIF.BOF.Presentation.Web.Infragistics111 NuGet package alongside the presentation-layer libraries that consume it for navigation and page-level authorization.

Purpose

  • Model the menu domain — applications, categories, pages, items, security groups, group memberships, and favorites — and provide full CRUD administration of each through standard BOF business objects.
  • Resolve, per user, the effective set of reachable menu items by combining group-granted access, unsecured (no-grant) items, and the user's own favorites into a single read-only projection (clsMenuAuthorizedItemCollection) that backs page-level authorization checks in consuming presentation applications.
  • Expose per-item toolbar capability flags (print, download, help, save, insert, delete, save-preferences) consumed by presentation-layer menu rendering.

Responsibilities

  • Provide full or partial CRUD for applications (clsApplicationCode), menu categories (clsMenuCategoryCode), pages (clsMenuPage), items (clsMenuItem), security grants (clsMenuSecurity), group memberships (clsMenuSecurityUser), and favorites (clsMenuFavorite).
  • Resolve and expose the authorized-item projection (clsMenuAuthorizedItem / clsMenuAuthorizedItemCollection) with its lookup/filter surface used for navigation and authorization checks.
  • Persist all changes through the standard BOF IBusinessCriteria + Before*/After* lifecycle against Oracle, with no database connection management of its own.

Key components

  • clsMenuAuthorizedItemCollection / clsMenuAuthorizedItem: the read-side authorization projection — resolves and exposes a user's reachable menu items; read-only, no CRUD of its own.
  • clsMenuItem / clsMenuItemCollection: placement of a page within a category, owning its security groups as a child collection.
  • clsMenuPage / clsMenuPageCollection: navigable page definitions and toolbar capability flags.
  • clsMenuSecurity / clsMenuSecurityCollection: security-group grants on menu items.
  • clsMenuSecurityUser / clsMenuSecurityUserCollection: user membership in security groups.
  • clsMenuFavorite / clsMenuFavoriteCollection: per-user favorite menu items.
  • clsApplicationCode / clsApplicationCodeCollection: registered applications and their virtual paths.
  • clsMenuCategoryCode / clsMenuCategoryCodeCollection: menu category lookup codes.
  • mdlUtilities: cross-cutting helper for moving LINQ-filtered sequences back into BOF collections.

Sources

  • SAIF.Business.Menu/SAIF.Business.Menu.vbproj
  • SAIF.Business.Menu/AssemblyInfo.vb
  • SAIF.BOF.Presentation.Web.Infragistics111.nuspec