Table of Contents

Class MailRuleExecutionQuery

Namespace
MailFathom.Application.Rules.History
Assembly
MailFathom.Application.dll

Asks one bounded, keyset-paginated page of an account's rule history.

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

Remarks

The account is required rather than optional, and every other filter narrows within it. Retention and erasure are decisions made per account, so reading is scoped the same way — and a surface over derived personal data is better for making a caller name whose mailbox they are asking about than for serving a deployment-wide list.

The two optional identities are the two ways the history is arrived at, and they compose rather than exclude: naming a rule answers what that rule has been doing, naming a message answers why that message was filed, and naming both answers what one rule concluded about one message across the runs that reached it.

A page is always bounded and always ordered newest first, so a caller that supplies nothing gets the most recent DefaultPageSize executions rather than the whole history.

Fields

DefaultPageSize

The page size a request that names none is served.

MaximumPageSize

The greatest page size one request may ask for.

Properties

AccountId

Gets the account whose history is read.

Cursor

Gets the boundary a continued walk reads beyond, or null for the first page.

EvaluatedBefore

Gets the evaluation instant the page stops before, exclusive, or null when it reaches the newest execution.

EvaluatedFrom

Gets the earliest evaluation instant served, inclusive, or null when the page reaches as far back as the history does.

FilterFingerprint

Gets the fingerprint of the filters this query reads under, which its cursors are issued against.

PageSize

Gets how many executions the page holds at most.

RuleName

Gets the rule the page is narrowed to, or null for every rule of the account.

StoredEmailId

Gets the email the page is narrowed to, or null for every email of the account.

Methods

Create(MailAccountId, string?, StoredEmailId?, DateTimeOffset?, DateTimeOffset?, int?, MailRuleExecutionCursor?)

Builds a validated query from what a caller asked for, or reports why the request names no page.