Table of Contents

Class MailRuleEvaluationRun

Namespace
MailFathom.Application.Rules.Evaluation
Assembly
MailFathom.Application.dll

A whole-mailbox rule run, and how far the account's synchronization runs have carried it.

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

Remarks

Durable because it has to survive the process. The run spans as many account runs as its batch budget needs, so a restart in the middle of one must resume at the email nobody has reached rather than at the beginning of a mailbox — and a request that arrived seconds before a shutdown must still be a request afterwards.

One outstanding run per account, which is what makes a second request an answer rather than a second walk. There is no queue behind it: asking twice for the same thing is asking once, and the reply says the run is already under way. That holds across what started them as well — a rule's schedule finding a run in front of the account is answered with it, because the mailbox is going to be walked either way.

Every field is either MailFathom's own identity for something or a count. Nothing derived from a message belongs in a record an operator reads to find out what their instance is doing.

Properties

AccountId

Gets the account whose mail the run walks.

EndedAt

Gets when the run stopped being outstanding, or null while it still is.

Ending

Gets how the run ended, which is absent for exactly as long as EndedAt is.

EvaluatedEmailCount

Gets how many of the account's emails the run has evaluated.

IsOutstanding

Gets whether the run is still waiting to be carried further by an account run.

MatchedEmailCount

Gets how many of those emails at least one rule matched.

Position

Gets the identity of the last email the run committed, or null while it has committed none.

RequestedAt

Gets when the run was asked for.

Revision

Gets the rule set the run is bound to, which is unspecified until the first pass picks the run up.

SkippedEmailCount

Gets how many emails the run stepped over because their body text had not been extracted yet.

Trigger

Gets what started the run, which decides both the rules it reaches and what its executions are recorded as.

Methods

Supersedes(MailRuleEvaluationRun)

Answers whether this run, which is starting, may take the place of one the account already has.