Table of Contents

Constructor MailAccountRunState

Namespace
MailFathom.Application.Synchronization.Administration
Assembly
MailFathom.Application.dll

MailAccountRunState(MailAccountRunPhase, DateTimeOffset?, int, MailAccountRunReport?)

Where one account's synchronization stands in the process that is running it.

public MailAccountRunState(MailAccountRunPhase Phase, DateTimeOffset? NextRunDueAt, int ConsecutiveFailureCount, MailAccountRunReport? LastRun)

Parameters

Phase MailAccountRunPhase

What the account's supervisor is doing.

NextRunDueAt DateTimeOffset?

When the next run is due, or null while the account is not waiting for one.

ConsecutiveFailureCount int

How many of the account's runs failed in a row; zero once one succeeds.

LastRun MailAccountRunReport

How the account's most recent finished run ended, or null when none has finished in this process.

Remarks

The failure count is reported beside the phase because the two together are the whole of the backoff story: a delay that keeps growing while the count climbs is an account approaching a server that is refusing it, and a delay equal to the configured interval with a count of zero is an account that is simply between runs. Neither reading is available from either half alone.

It describes the running process rather than a durable record, and MailSynchronizationRunLedger holds why that is the right scope: a restart resets the backoff it describes, so a count carried across one would name a delay nothing is applying.