---
title: clsMenuPageCollection
summary: API reference for clsMenuPageCollection.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# clsMenuPageCollection

A collection of every `clsMenuPage`, used by page-lookup logic ([OP-MENU-03](../../operations/op-menu-03-locate-menu-item-for-navigation.md)) to locate a page by application and link, independent of the per-user authorization projection.

## Purpose
- Loads and holds the full set of menu pages retrieved via [SQL-025](../../sql/SQL-025-retrieve-all-menu-pages.md).
- Provides link-based lookup (`Item`, `ItemExact`) honoring page-link normalization ([BR-MENU-009](../../business-rules.md#br-menu-009-page-link-normalization)).

## Context
- Namespace: `SAIF.Business.Menu`
- Assembly/package: `SAIF.Business.Menu` (`SAIF.BOF.Presentation.Web.Infragistics111` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| NewMenuPages | `Shared Function NewMenuPages(dpi As IDataPortalInfo) As clsMenuPageCollection` | Factory that creates an empty, unmanaged collection ready to hold new pages. |
| GetAllMenuPages | `Shared Function GetAllMenuPages(dpi As IDataPortalInfo) As clsMenuPageCollection` | Factory that loads every menu page ([SQL-025](../../sql/SQL-025-retrieve-all-menu-pages.md)). |
| Item | `Function Item(appCode As String, pageLink As String) As clsMenuPage` | Locates a page by application code and link, ignoring any query string ([BR-MENU-009](../../business-rules.md#br-menu-009-page-link-normalization)). |
| ItemExact | `Function ItemExact(appCode As String, pageLink As String) As clsMenuPage` | Locates a page by application code and link, requiring an exact match including any query string. |
| Where | `Function Where(predicate As Func(Of clsMenuPage, Boolean)) As IEnumerable(Of clsMenuPage)` | LINQ-style filter over the loaded pages. |
| ToList | `Function ToList() As List(Of clsMenuPage)` | Materializes the collection as a plain `List(Of clsMenuPage)`. |

## Inherited public members

Members in this section are inherited from `clsBusinessCollectionBase` in `SAIF.Framework.Core` (delivered by the `SAIF.BOF.Framework` package). They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| First | `Sub First()` | Moves the collection's current-item cursor to the first element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Last | `Sub Last()` | Moves the cursor to the last element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Next | `Sub Next()` | Advances the cursor to the next element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Previous | `Sub Previous()` | Moves the cursor to the previous element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| SetCurrent | `Sub SetCurrent(item As Object)` | Sets the cursor to the given item (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Traverse | `Sub Traverse(...)` | Iterates the collection, applying a traversal callback to each element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Error | `ReadOnly Property Error As String` | Aggregated validation error message for the collection (`IDataErrorInfo`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Item(columnName) | `ReadOnly Property Item(columnName As String) As String` | Per-column validation error message (`IDataErrorInfo`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Operations and processes](../../operations-processes.md)
- [Business rules](../../business-rules.md)
- [Database tables](../../database-tables.md)
- [API reference](../index.md)

> **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 `†` were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- SAIF.Business.Menu/clsMenuPageCollection.vb
