public override string ToString()
{
var output = new StringBuilder();
if (!Data.Any())
return string.Format("+-------------------+{0}| No data returned. |{0}+-------------------+", Environment.NewLine);
if (Data.Count % Columns.Count != 0)
return string.Format("ERROR: The data appears to be corrupt, we have {0} columns, but {1} bits of data.", Columns.Count, Data.Count);
var colLengths = Columns.Select(c => c.Length);
var dataLengths = Data.Select(neo4jData => neo4jData.Length).ToList();
var lengths = colLengths.Union(dataLengths).ToList();
output.AppendLine(WriteSeparator(lengths));
output.AppendLine(WriteColumns(lengths));
output.AppendLine(WriteSeparator(lengths));
output.Append(GetRows(lengths.Max()));
output.Append(WriteSeparator(lengths));
return output.ToString();
}