public static IEnumerable <Extract> GetExtracts(DataModelSchema schema) { var tables = schema.FilterTables(); var measures = tables.Where(t => t.Measures != null).SelectMany(t => GetMeasures(t)); var columns = tables.Where(t => t.Columns != null).SelectMany(t => GetColumns(t)); var partitions = tables.Where(t => t.Partitions != null).SelectMany(t => GetPartitions(t)); var expressions = schema.Model.Expressions != null?schema.Model.Expressions.Select(e => GetExtractFromExpression(e)) : Enumerable.Empty <Extract>(); return(measures.Concat(columns).Concat(partitions).Concat(expressions)); }