Table of Contents

Constructor MailRuleEvaluationPass

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

MailRuleEvaluationPass(IMailRuleSetSource, MailRuleSetEvaluator, IMailRuleEvaluationStore, IMailRuleEvaluationRunStore, MailRuleActionRecorder, MailboxDestinationResolver, IMailRuleExecutionStore, IMailFolderMappingReader, OptimisticConcurrencyRetryPolicy, MailRuleEvaluationOptions, TimeProvider)

Initializes the pass from the rule set it applies and the local state it walks.

public MailRuleEvaluationPass(IMailRuleSetSource ruleSetSource, MailRuleSetEvaluator evaluator, IMailRuleEvaluationStore store, IMailRuleEvaluationRunStore runStore, MailRuleActionRecorder actionRecorder, MailboxDestinationResolver destinationResolver, IMailRuleExecutionStore executionStore, IMailFolderMappingReader folderMappings, OptimisticConcurrencyRetryPolicy commitPolicy, MailRuleEvaluationOptions options, TimeProvider timeProvider)

Parameters

ruleSetSource IMailRuleSetSource

Hands out the rule set the pass runs under, read once when the pass begins.

evaluator MailRuleSetEvaluator

Runs a rule set over one email and classifies every way a condition can fail to answer.

store IMailRuleEvaluationStore

Reads the candidates and records which emails have been evaluated.

runStore IMailRuleEvaluationRunStore

Reads the requested whole-mailbox run and records how far it has been carried.

actionRecorder MailRuleActionRecorder

Writes down the changes a matching rule asks the mailbox for.

destinationResolver MailboxDestinationResolver

Finds the folders those changes file into, before the batch's transaction opens.

executionStore IMailRuleExecutionStore

Keeps the record of what each rule concluded and what became of what it asked for.

folderMappings IMailFolderMappingReader

Answers what the folder an email is in is configured for, which a condition naming the role reads.

commitPolicy OptimisticConcurrencyRetryPolicy

Commits a batch's evaluations together with the position they account for.

options MailRuleEvaluationOptions

Bounds one walk.

timeProvider TimeProvider

Supplies the instant each email is evaluated at and each record is stamped with.

Exceptions

ArgumentNullException

Thrown when a collaborator is null.

ArgumentOutOfRangeException

Thrown when a configured bound is below one.