MakeTableInBatchWriteRowRequest(string tableName, DataModel.RowChanges rowChanges) { var builder = PB.TableInBatchWriteRowRequest.CreateBuilder(); builder.SetTableName(tableName); foreach (var op in rowChanges.PutOperations) { var putBuilder = PB.PutRowInBatchWriteRowRequest.CreateBuilder(); putBuilder.SetCondition(MakeCondition(op.Item1)); putBuilder.AddRangePrimaryKey(MakeColumns(op.Item2)); putBuilder.AddRangeAttributeColumns(MakeColumns(op.Item3)); builder.AddPutRows(putBuilder.Build()); } foreach (var op in rowChanges.UpdateOperations) { var updateBuilder = PB.UpdateRowInBatchWriteRowRequest.CreateBuilder(); updateBuilder.SetCondition(MakeCondition(op.Item1)); updateBuilder.AddRangePrimaryKey(MakeColumns(op.Item2)); updateBuilder.AddRangeAttributeColumns(MakeUpdateOfAttribute(op.Item3)); builder.AddUpdateRows(updateBuilder.Build()); } foreach (var op in rowChanges.DeleteOperations) { var deleteBuilder = PB.DeleteRowInBatchWriteRowRequest.CreateBuilder(); deleteBuilder.SetCondition(MakeCondition(op.Item1)); deleteBuilder.AddRangePrimaryKey(MakeColumns(op.Item2)); builder.AddDeleteRows(deleteBuilder.Build()); } return(builder.Build()); }
private PB.TableInBatchWriteRowRequest EncodeTableInBatchWriteRowRequest(string tableName, DataModel.RowChanges rowChanges) { var tableBuilder = PB.TableInBatchWriteRowRequest.CreateBuilder(); tableBuilder.SetTableName(tableName); if (rowChanges == null || rowChanges.IsEmpty()) { return(tableBuilder.Build()); } foreach (var rowChange in rowChanges.RowPutChanges) { tableBuilder.AddRows(EncodeWriteRowRequest(rowChange)); } foreach (var rowChange in rowChanges.RowUpdateChanges) { tableBuilder.AddRows(EncodeWriteRowRequest(rowChange)); } foreach (var rowChange in rowChanges.RowDeleteChanges) { tableBuilder.AddRows(EncodeWriteRowRequest(rowChange)); } return(tableBuilder.Build()); }