Example #1
0
        public async Task <T> Put(T item)
        {
            var document = Converter.ToDocument(item);

            document = await Table.PutItemAsync(document);

            return(document != null?Converter.FromDocument <T>(document) : item);
        }
Example #2
0
        public async Task <int> Update(Action <T> updateAction)
        {
            var total = 0;

            var(items, count, token) = await GetDocuments(maxBatchSize);

            while (items.Any())
            {
                var batchWrite = table.CreateBatchWrite();
                foreach (var item in items)
                {
                    var value = converter.FromDocument <T>(item);
                    updateAction(value);
                    var updateItem = converter.ToDocument(value);
                    batchWrite.AddDocumentToPut(updateItem);
                }
                await batchWrite.ExecuteAsync();

                total += items.Count;
                if (items.Count < maxBatchSize)
                {
                    break;
                }
                (items, count, token) = await GetDocuments(maxBatchSize, token);
            }
            return(total);
        }