MutationParameters<T>

Beschreibt eine Ausführung einer Mutation<T>: was ausgeführt wird und welche Callbacks aufgerufen werden.

public class MutationParameters<T>

Mutationsfunktionen#

Setze genau eine. Vorrang, wenn mehrere gesetzt sind: CancellableMutationFunction > MutationFunction > CancellableVoidMutationFunction > VoidMutationFunction. Nur die Formen mit Rückgabewert schreiben Data. Wird keine übergeben, wird eine ArgumentException geworfen.

Eigenschaft TypStandardBeschreibung
MutationFunction Func<Task<T>>?<code>null</code>Die auszuführende Mutation. Hat Vorrang vor VoidMutationFunction.
VoidMutationFunction Func<Task>?<code>null</code>Eine Mutation ohne Rückgabewert; wird genutzt, wenn MutationFunction nicht gesetzt ist.
CancellableMutationFunction Func<CancellationToken, Task<T>>?<code>null</code>Die auszuführende Mutation, die einen Cancellation-Token erhält. Hat Vorrang vor allen anderen Formen. Der Token wird abgebrochen, wenn die besitzende Komponente disposed wird.
CancellableVoidMutationFunction Func<CancellationToken, Task>?<code>null</code>Eine abbruchfähige Mutation ohne Rückgabewert.

Callbacks und Steuerung#

Eigenschaft TypStandardBeschreibung
CancellationToken CancellationToken?<code>null</code>Vom Aufrufer verwalteter Lifetime-Token; null bedeutet den Lifetime-Token der besitzenden Komponente. Ein hier gesetzter Wert ersetzt den ambienten Token, statt sich mit ihm zu kombinieren.
OnSuccessAsync / OnSuccess Func<T?, Task>? / Action<T?>?Wird aufgerufen, wenn die Mutation erfolgreich ist. Die asynchrone Form wird awaited, bevor InvalidateKeys läuft und Execute abschließt; Folge-Queries oder -Mutations lassen sich also daran anschließen.
OnErrorAsync / OnError Func<Exception, Task>? / Action<Exception>?Wird aufgerufen, wenn die Mutation fehlschlägt.
OnDisplayUserErrorAsync / OnDisplayUserError Func<DisplayUserException, Task>? / Action<DisplayUserException>?Wird aufgerufen, wenn die Mutation mit einer DisplayUserException fehlschlägt.
OnSettledAsync / OnSettled Func<T?, Task>? / Action<T?>?Wird aufgerufen, wenn die Mutation settled ist (Erfolg oder Fehler; kein Abbruch).
Client DejaClient?<code>null</code>Cache-Client-Override für diese Ausführung; bleibt meist null.
InvalidateKeys IReadOnlyList<QueryKey>?<code>null</code>Keys, die nach erfolgreicher Mutation und gelaufenem OnSuccess invalidiert werden (Präfix-Match). Jede gemountete Query darunter lädt im Hintergrund neu. Ohne registrierten Client ignoriert.

Beispiel#

await _addTodo.Execute(new MutationParameters<Todo>
{
    CancellableMutationFunction = token => Api.AddTodoAsync(title, token),
    InvalidateKeys = [QueryKey.Of("todos")],
    OnError = e => _error = e.Message,
});