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.
Related documentation¶
- Index
- Architecture
- Dependencies
- Operations and processes
- Business rules
- Database tables
- SQL catalog
- Security and authorization
- API reference
Sources¶
- SAIF.Business.Menu/SAIF.Business.Menu.vbproj
- SAIF.Business.Menu/AssemblyInfo.vb
- SAIF.BOF.Presentation.Web.Infragistics111.nuspec