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); }
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); }