Esempio n. 1
0
        /// <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)}");
        }