Table of Contents

Method ConvergeAsync

Namespace
MailFathom.Application.Mail.Mutations.Convergence
Assembly
MailFathom.Application.dll

ConvergeAsync(MailAccountId, CancellationToken)

Takes one bounded pass over everything the account has asked a mail server for and not seen finished.

public Task<MailboxConvergenceReport> ConvergeAsync(MailAccountId accountId, CancellationToken cancellationToken)

Parameters

accountId MailAccountId

The account whose mutations are converged.

cancellationToken CancellationToken

Cancels the pass; a mutation already under way is cancelled with it.

Returns

Task<MailboxConvergenceReport>

What the pass did, and what the account still owes afterwards.

Remarks

One record's failure never ends the pass. A mail server that refuses one change is usually refusing every change, so the remaining records fail quickly beside it and the account's next run is what defers them; a change that is broken on its own must not stop the ones that are not, which is the whole of what "does not block unrelated work" means here.

Exceptions

OperationCanceledException

Thrown when the caller cancels the pass.