private static void OnSelectResults(RuntimeTable<ResultRow> result)
{
lock (ConsoleAppender.ConsoleWriteLock)
{
ConsoleAppender.PlatConsole.MoveCursor(ConsoleAppender.PlatConsole.StartLine + 3);
var lengths = Measure(result);
//+--+-------------------+------------+
//| | (No column name) | .content a |
//+--+-------------------+------------+
var border = Border(lengths);
ConsoleAppender.PlatConsole.Print(border);
var values = result.Columns().ToList();
values.Insert(0, "");
ConsoleAppender.PlatConsole.Print(Values(lengths, values.ToArray()));
ConsoleAppender.PlatConsole.Print(border.ToString());
for (int row = 0; row < result.RowCount; row++)
{
var valueList = new List<string>();
for (int col = 0; col < lengths.Count - 1; col++)
valueList.Add(result[row][col].ToString());
valueList.Insert(0, (row + 1).ToString());
ConsoleAppender.PlatConsole.Print(Values(lengths, valueList.ToArray()));
}
ConsoleAppender.PlatConsole.Print(border.ToString());
ConsoleAppender.PlatConsole.StartLine = ConsoleAppender.PlatConsole.CurrentLine+1;
}
}