private async Task BatchedOperationAsync( CloudTable table, IGrouping <string, Value> valueGroups, Action <TableBatchOperation, ITableEntity> action) { foreach (var valuesChunk in valueGroups.Chunk(this.options.MaxInsertLimit)) { if (valuesChunk == null) { break; } var values = new List <Value>(valuesChunk); var batch = new TableBatchOperation(); foreach (var value in values) { action(batch, new EntityAdapter( value, this.isCosmos ? new[] { "Id", "Timestamp" } : null)); } var result = await this.ExecuteBatchAsync(table, batch); for (var i = 0; i < result.Count && i < values.Count; i++) { var tableResult = result[i]; var value = values[i]; } } }
private async Task BatchedOperationAsync(CloudTable table, IGrouping <string, Value> group, Action <TableBatchOperation, IAzTableEntity> azAction) { foreach (IEnumerable <Value> chunk in group.Chunk(MaxInsertLimit)) { if (chunk == null) { break; } var chunkLst = new List <Value>(chunk); var batch = new TableBatchOperation(); foreach (Value row in chunkLst) { azAction(batch, new EntityAdapter(row)); } List <TableResult> result = await ExecOrThrowAsync(table, batch); for (int i = 0; i < result.Count && i < chunkLst.Count; i++) { TableResult tr = result[i]; Value row = chunkLst[i]; } } }