Table of Contents

Interface IMailboxMutationReconciliationStore

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

Reads the mutation records synchronization has to recognize its own work in, and writes down that it did.

public interface IMailboxMutationReconciliationStore

Remarks

It is a port of its own rather than more members on IMailboxMutationRecordStore because the two answer to different callers. That one belongs to the act of performing a mutation and is written through the session the performer already holds; this one belongs to a synchronization run, which reads records it did not create and asks about them by where the email is rather than by which record it is.

Both reads are bounded, and neither returns anything derived from a message. A record names folders, identifiers, and a requester, which is what lets the join be made without reading mail.

Methods

ReadMutationsRemovingAsync(MailAccountId, MailFolderResolutionId, ImapUidValidity, IReadOnlyCollection<ImapUid>, CancellationToken)

Reads the mutations issued against any of the source occurrences a reconciliation window found gone.

ReadPlacementsAtAsync(MailAccountId, RemoteFolderPath, ImapUidValidity, IReadOnlyCollection<ImapUid>, CancellationToken)

Reads the mutations that named one folder as their destination and placed an email at one of these UIDs.

ReadSeenStateChangesOnAsync(MailAccountId, MailFolderResolutionId, ImapUidValidity, IReadOnlyCollection<ImapUid>, CancellationToken)

Reads the \Seen stores issued against any of the occurrences a reconciliation window read flags for.

RecordPlacementObservedAsync(IPersistenceSession, MailboxMutationRecordId, DateTimeOffset, CancellationToken)

Writes down that the occurrence a relocation created has been recognized and the local row carried onto it.

RecordSourceRemovalObservedAsync(IPersistenceSession, MailboxMutationRecordId, DateTimeOffset, CancellationToken)

Writes down that the source occurrence a mutation removed has been seen to leave its folder.