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.
- 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.
- 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.