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