Constructor ListEmailsResult
- Namespace
- MailFathom.Application.Emails.ListEmails
- Assembly
- MailFathom.Application.dll
ListEmailsResult(IReadOnlyList<EmailSummary>, string?, IReadOnlyList<MailboxFolderFreshness>, bool)
One page of a mailbox listing, together with what continues it and how current it is.
public ListEmailsResult(IReadOnlyList<EmailSummary> Emails, string? NextCursor, IReadOnlyList<MailboxFolderFreshness> FolderFreshness, bool IncludedJunkMail)
Parameters
EmailsIReadOnlyList<EmailSummary>The page, in the timeline order the request asked for, holding no more than the effective page size.
NextCursorstringThe cursor that reads the next page, or null when this page ended the walk.
FolderFreshnessIReadOnlyList<MailboxFolderFreshness>How current the local copy of each folder in the request's scope is.
IncludedJunkMailboolWhether the account's junk folder took part in the listing.
Remarks
The absence of a cursor is the end of the result set rather than a hint: the reader establishes it by asking storage for one row beyond the page and finding none, so a caller that stops when the cursor is absent has seen every row exactly once. A present cursor never promises that the next page is non-empty — mail can be expunged between two requests — but continuing from it can never skip or repeat a row.
Freshness travels with every page because the listing is served from the local copy whether or not a mail server is reachable, which is what makes stale data explicit instead of indistinguishable from an empty mailbox.
Whether junk took part travels with the page for the same reason, and it is reported whichever answer it is: a page that omitted a whole folder and a page that read every folder are otherwise the same shape, so a caller could not tell a mailbox holding nothing more from one whose remainder is behind a flag they did not set.