/// <summary> /// Sends all changes registered on document sets of specified type to Sanity as a transactional set of mutations. /// </summary> /// <param name="returnIds"></param> /// <param name="returnDocuments"></param> /// <param name="visibility"></param> /// <returns></returns> public async Task <SanityMutationResponse <TDoc> > CommitAsync <TDoc>(bool returnIds = false, bool returnDocuments = false, SanityMutationVisibility visibility = SanityMutationVisibility.Sync, CancellationToken cancellationToken = default) { var mutations = Mutations.For <TDoc>(); if (mutations.Mutations.Count > 0) { var result = await Client.CommitMutationsAsync <TDoc>(mutations.Build(), returnIds, returnDocuments, visibility, cancellationToken).ConfigureAwait(false); mutations.Clear(); return(result); } throw new Exception($"No pending changes for document type {typeof(TDoc)}"); }