Table of Contents

Class EmailTimelineFilter

Namespace
MailFathom.Application.Emails.Mailboxes
Assembly
MailFathom.Application.dll

Selects which stored emails a mailbox timeline query returns, and from which end it reads them.

public sealed record EmailTimelineFilter : IEquatable<EmailTimelineFilter>
Inheritance
EmailTimelineFilter
Implements
Inherited Members

Remarks

The structured filters live on Selection, which a lexical search applies too. What this type adds is the part that belongs to a timeline alone: the end it is read from, and the fingerprint a continuation cursor is checked against.

The reading direction belongs to the filter rather than sitting beside it, because a continuation cursor names a boundary in one total order over one filtered set. Treating the direction as a separate concern would let a cursor issued while reading newest-first be presented while reading oldest-first, which names a row and an arbitrary window around it. Fingerprint therefore covers the direction along with the filters.

Properties

Direction

Gets the end of the timeline the page is read from.

Fingerprint

Gets the fingerprint identifying this filter and direction to a continuation cursor.

Selection

Gets the validated structural filters the timeline is narrowed by.

Methods

Create(MailboxScope, string?, string?, string?, DateTimeOffset?, DateTimeOffset?, bool?, bool?, EmailTimelineDirection)

Validates and normalizes what a request asked for.

ReadIn(MailboxEmailSelection, EmailTimelineDirection)

Reads an already validated selection from one end of the timeline.