コード例 #1
0
        public Task <IMutationResult> MutateIn(string id, IEnumerable <OperationSpec> specs, Action <MutateInOptions> configureOptions)
        {
            var options = new MutateInOptions();

            configureOptions(options);

            return(MutateIn(id, specs, options));
        }
コード例 #2
0
        public static Task <IMutationResult> MutateInAsync(this ICollection collection, string id,
                                                           IEnumerable <OperationSpec> specs, Action <MutateInOptions> configureOptions)
        {
            var options = new MutateInOptions();

            configureOptions(options);

            return(collection.MutateInAsync(id, specs, options));
        }
コード例 #3
0
        public Task <IMutationResult> MutateIn(string id, IEnumerable <OperationSpec> specs, TimeSpan?timeout = null, TimeSpan?expiration = null, ulong cas = 0, bool createDocument = false,
                                               DurabilityLevel durabilityLevel = DurabilityLevel.None, CancellationToken token            = default(CancellationToken))
        {
            var options = new MutateInOptions();

            ConfigureMutateInOptions(options, timeout, expiration, cas, createDocument, durabilityLevel, token);

            return(MutateIn(id, specs, options));
        }
コード例 #4
0
        public Task <IMutationResult> MutateIn(string id, Action <MutateInSpecBuilder> configureBuilder, Action <MutateInOptions> configureOptions)
        {
            var builder = new MutateInSpecBuilder();

            configureBuilder(builder);

            var options = new MutateInOptions();

            configureOptions(options);

            return(MutateIn(id, builder.Specs, options));
        }
コード例 #5
0
        public static Task <IMutationResult> MutateInAsync(this ICollection collection, string id,
                                                           Action <MutateInSpecBuilder> configureBuilder, Action <MutateInOptions> configureOptions)
        {
            var builder = new MutateInSpecBuilder();

            configureBuilder(builder);

            var options = new MutateInOptions();

            configureOptions(options);

            return(collection.MutateInAsync(id, builder.Specs, options));
        }
コード例 #6
0
        public Task <IMutationResult> MutateIn(string id, Action <MutateInSpecBuilder> configureBuilder, TimeSpan?timeout = null, TimeSpan?expiration = null, ulong cas = 0, bool createDocument = false,
                                               DurabilityLevel durabilityLevel = DurabilityLevel.None, CancellationToken token = default(CancellationToken))
        {
            var builder = new MutateInSpecBuilder();

            configureBuilder(builder);

            var options = new MutateInOptions();

            ConfigureMutateInOptions(options, timeout, expiration, cas, createDocument, durabilityLevel, token);

            return(MutateIn(id, builder.Specs, options));
        }
コード例 #7
0
        private static void ConfigureMutateInOptions(MutateInOptions options, TimeSpan?timeout, TimeSpan?expiration,
                                                     ulong cas, bool createDocument, DurabilityLevel durabilityLevel, CancellationToken token)
        {
            if (timeout.HasValue)
            {
                options.Timeout(timeout.Value);
            }

            if (expiration.HasValue)
            {
                options.Expiration(expiration.Value);
            }

            if (cas > 0)
            {
                options.Cas(cas);
            }

            var flags = SubdocDocFlags.None;

            if (createDocument)
            {
                flags ^= SubdocDocFlags.UpsertDocument;
            }

            if (durabilityLevel != DurabilityLevel.None)
            {
                options._DurabilityLevel = durabilityLevel;
            }

            if (token != CancellationToken.None)
            {
                options._Token = token;
            }

            options.Flags(flags);
        }
コード例 #8
0
        public async Task <IMutationResult> MutateInAsync(string id, IEnumerable <OperationSpec> specs, MutateInOptions options)
        {
            // convert new style specs into old style builder
            var builder = new MutateInBuilder <byte[]>(null, null, id, specs);

            using (var mutation = new MultiMutation <byte[]>
            {
                Key = id,
                Builder = builder,
                Cid = Cid,
                DurabilityLevel = options.DurabilityLevel
            })
            {
                await ExecuteOp(mutation, options.Token, options.Timeout);

                return(new MutationResult(mutation.Cas, null, mutation.MutationToken));
            }
        }
コード例 #9
0
        public static Task <IMutationResult> MutateInAsync(this ICollection collection, string id,
                                                           Action <MutateInSpecBuilder> configureBuilder, MutateInOptions options)
        {
            var mutateInSpec = new MutateInSpecBuilder();

            configureBuilder(mutateInSpec);

            return(collection.MutateInAsync(id, mutateInSpec.Specs, options));
        }
コード例 #10
0
        public Task <IMutationResult> MutateIn(string id, Action <MutateInSpecBuilder> configureBuilder, MutateInOptions options)
        {
            var mutateInSpec = new MutateInSpecBuilder();

            configureBuilder(mutateInSpec);

            return(MutateIn(id, mutateInSpec.Specs, options));
        }