private void OnQuery(List <DimensionValues> dimensionValuesList) { var result = _reader.Query(dimensionValuesList); var table = _dataSet.Tables[0]; table.Clear(); foreach (var map in result) { var row = table.NewRow(); foreach (var pair in map) { if (table.Columns.Contains(pair.Key) == false) { continue; } var column = table.Columns[pair.Key]; if (column.DataType == typeof(DateTimeOffset)) { var timestamp = Int64.Parse(pair.Value); row[pair.Key] = Epoch.ToDateTimeOffset(timestamp); } else if (column.DataType == typeof(bool)) { row[pair.Key] = bool.Parse(pair.Value); } else { row[pair.Key] = pair.Value; } } table.Rows.Add(row); } }