public static Task <IMutationResult> InsertAsync <T>(this ICouchbaseCollection collection, string id, T content,
                                                             Action <InsertOptions> optionsAction)
        {
            var options = new InsertOptions();

            optionsAction(options);

            return(collection.InsertAsync(id, content, options));
        }
        public async Task <IMutationResult> InsertAsync <T>(string id, T content, InsertOptions options)
        {
            var transcoder = options.Transcoder ?? _transcoder;

            using (var insertOp = new Add <T>
            {
                Key = id,
                Content = content,
                Cas = options.Cas,
                Cid = Cid,
                Expires = options.Expiry.ToTtl(),
                DurabilityLevel = options.DurabilityLevel,
                DurabilityTimeout = TimeSpan.FromMilliseconds(1500),
                Transcoder = transcoder
            })
            {
                await _bucket.SendAsync(insertOp, options.Token, options.Timeout).ConfigureAwait(false);

                return(new MutationResult(insertOp.Cas, null, insertOp.MutationToken));
            }
        }