private async Task UpdateItemsAsync(DataObject dobj, SqlCommand command, bool replace) { var columns = await GetTableColumnsAsync(command).ConfigureAwait(false); var items = dobj.GetArray("items"); if (items == null) { throw new ArgumentNullException(nameof(items), $"Argument items should contain an array of items to {(replace ? "replace" : "update")}"); } var affectedRows = 0; foreach (var item in items) { var d = new DataObject(); foreach (var kv in item) { d[kv.Key] = kv.Value; } PrepareUpdateItemQuery(d, command, columns, replace); affectedRows += await command.ExecuteNonQueryAsync().ConfigureAwait(false); } dobj["affectedRows"] = affectedRows; }
private async Task CreateItemsAsync(DataObject dobj, SqlCommand command) { var columns = await GetTableColumnsAsync(command).ConfigureAwait(false); var items = dobj.GetArray("items"); if (items == null) { throw new ArgumentNullException(nameof(items), "Argument items should contain an array of items to create"); } foreach (var item in items) { var d = new DataObject(); foreach (var kv in item) { d[kv.Key] = kv.Value; } PrepareCreateItemQuery(d, command, columns); item["id"] = await command.ExecuteScalarAsync().ConfigureAwait(false); } dobj["items"] = items; }