private void AddBaseTableColumns(IReactiveTable table) { foreach (var column in table.Columns) { _columns.AddColumn(column); } }
/// <summary> /// Group the source table by the given column /// </summary> /// <param name="columnId"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> /// <exception cref="ArgumentException"></exception> public IReactiveColumn GroupBy <T>(string columnId) { var column = (IReactiveColumn <T>)_sourceTable.GetColumnByName(columnId); if (_groupColumns.ContainsKey(column.ColumnId)) { throw new ArgumentException($"Column {column.ColumnId} is already in group by statement", "columnId"); } var keyColumn = new HashcodeAccessor <T>(column); _keyColumns.Add(keyColumn); _groupColumns.Add(columnId, column); _allColumns.AddColumn(column); return(column); }