internal static DataTable GetDataTable(DataTableResponseObject dataTableResponse) { if (dataTableResponse == null) { throw new ArgumentNullException("kustoDataTable"); } var dataTable = new DataTable(dataTableResponse.TableName); dataTable.Columns.AddRange(dataTableResponse.Columns.Select(column => new DataColumn(column.ColumnName, GetColumnType(column.ColumnType, column.DataType))).ToArray()); foreach (var row in dataTableResponse.Rows) { var rowWithCorrectTypes = new List <object>(); for (int i = 0; i < dataTable.Columns.Count; i++) { object rowValueWithCorrectType = null; if (row[i] != null) { rowValueWithCorrectType = Convert.ChangeType(row[i], dataTable.Columns[i].DataType); } rowWithCorrectTypes.Add(rowValueWithCorrectType); } dataTable.Rows.Add(rowWithCorrectTypes.ToArray()); } return(dataTable); }
public static DataTable ToDataTable(this DataTableResponseObject dataTableResponse) { if (dataTableResponse == null) { throw new ArgumentNullException("dataTableResponse"); } var dataTable = new DataTable(dataTableResponse.TableName); dataTable.Columns.AddRange(dataTableResponse.Columns.Select(column => new DataColumn(column.ColumnName, GetColumnType(column.DataType))).ToArray()); foreach (var row in dataTableResponse.Rows) { var rowWithCorrectTypes = new List <object>(); for (int i = 0; i < dataTable.Columns.Count; i++) { object rowValueWithCorrectType = null; if (row[i] != null) { rowValueWithCorrectType = Convert.ChangeType(row[i], dataTable.Columns[i].DataType, CultureInfo.InvariantCulture); if (dataTable.Columns[i].DataType == typeof(DateTime)) { var dateTimeString = row[i].ToString(); //check if the string is in UTC time if (dateTimeString.EndsWith("Z", false, CultureInfo.InvariantCulture)) { rowValueWithCorrectType = Convert.ToDateTime(row[i]).ToUniversalTime(); } else { rowValueWithCorrectType = Convert.ToDateTime(row[i]); } } } rowWithCorrectTypes.Add(rowValueWithCorrectType); } dataTable.Rows.Add(rowWithCorrectTypes.ToArray()); } return(dataTable); }
public DiagnosticData() { DataTable = new DataTableResponseObject(); RenderingProperties = new RenderingProperties(); }