public async Task <ICollection <string> > GetColumnUniqueValues(string columnName) { // TODO: This method should be in the query builder. if (string.IsNullOrWhiteSpace(columnName)) { throw new ArgumentNullException(columnName); } var uniqueValues = new List <string>(); if (!ColumnsInTable.Any(c => c.Name == columnName)) { return(uniqueValues); } await Connection.EnsureConnected(); using (var command = Connection.CreateCommand()) { command.CommandText = $"SELECT DISTINCT({columnName}) FROM {TableName}"; using (var reader = command.ExecuteReader()) while (reader.Read()) { uniqueValues.Add(reader[0].ToString()); } } return(uniqueValues); }
public bool IsQueryable() { if (!ColumnsInTable.Any()) { return(false); } if (!ColumnsToGroupBy.Any() && !ColumnsToCount.Any() && !ColumnsToSum.Any()) { return(false); } return(true); }