Table of Contents

Class AuthoredMailFlagChange

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

One caller's request to write \Seen, \Flagged, or keywords onto one email this deployment holds.

public sealed record AuthoredMailFlagChange : IEquatable<AuthoredMailFlagChange>
Inheritance
AuthoredMailFlagChange
Implements
Inherited Members

Remarks

The three values travel in one request because they are one act against one message: a caller triaging mail decides all of it at once, and a server writes each with the same command against the same UID. What it is not is one mutation — each value asked for becomes a durable record of its own, because that is the unit convergence resumes, abandons, and attributes an observation back to.

Every field is optional and the whole request is refused when they all are, which is the one invariant this type enforces. A call that named an email and asked for nothing is a client mistake rather than a change of nothing, and answering it as a success would report a record identity nothing wrote.

Properties

Flagged

Gets where the caller wants the \Flagged flag left, or null to leave it alone.

KeywordDirection

Gets what the caller wants done with the keywords it listed, or null to leave them alone.

Keywords

Gets the keywords the change names, or null when it names no keyword change at all.

Seen

Gets where the caller wants the \Seen flag left, or null to leave it alone.

StoredEmailId

Gets the email the change is asked for, as a listing or a search returned it.

Methods

Create(StoredEmailId, bool?, bool?, MailKeywordChangeDirection?, IReadOnlyList<string>?)

Reads one request, refusing anything that does not state a change a server could be asked for.

Mutations()

Names every mutation this request asks for, in the order they are recorded.