static public Result Run(Window parent, Table table, string tableName) { var dialog = new GenerateInsertsDialog(table, tableName) { Owner = parent }; return dialog.ShowDialog() ? dialog.result : null; }
void Command_Table_Database_GenerateInserts(GenerateInsertsDialog.Result result) { var table = GetTable(); var header = $"INSERT INTO {result.TableName} ({string.Join(", ", Enumerable.Range(0, table.NumColumns).Select(column => table.GetHeader(column)))}) VALUES{(result.BatchSize == 1 ? " " : Data.DefaultEnding)}"; var output = Enumerable.Range(0, table.NumRows).Batch(result.BatchSize).Select(batch => string.Join($",{Data.DefaultEnding}", batch.Select(row => $"({string.Join(", ", result.Columns.Select(column => GetDBValue(table[row, column])))})"))).Select(val => $"{header}{val}{Data.DefaultEnding}").ToList(); Replace(new List<Range> { FullRange }, new List<string> { string.Join("", output) }); var offset = 0; var sels = new List<Range>(); foreach (var item in output) { sels.Add(Range.FromIndex(offset, item.Length)); offset += item.Length; } Selections.Replace(sels); }