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
ruleSetSourceIMailRuleSetSourceHands out the rule set the pass runs under, read once when the pass begins.
evaluatorMailRuleSetEvaluatorRuns a rule set over one email and classifies every way a condition can fail to answer.
storeIMailRuleEvaluationStoreReads the candidates and records which emails have been evaluated.
runStoreIMailRuleEvaluationRunStoreReads the requested whole-mailbox run and records how far it has been carried.
actionRecorderMailRuleActionRecorderWrites down the changes a matching rule asks the mailbox for.
destinationResolverMailboxDestinationResolverFinds the folders those changes file into, before the batch's transaction opens.
executionStoreIMailRuleExecutionStoreKeeps the record of what each rule concluded and what became of what it asked for.
folderMappingsIMailFolderMappingReaderAnswers what the folder an email is in is configured for, which a condition naming the role reads.
commitPolicyOptimisticConcurrencyRetryPolicyCommits a batch's evaluations together with the position they account for.
optionsMailRuleEvaluationOptionsBounds one walk.
timeProviderTimeProviderSupplies 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.