示例#1
0
        public static QueryDocument ToQueryDocument(this QueryBuilder source)
        {
            var result = new QueryDocument();
            var match = new MatchDefinition();

                match.Filters = source.AvailableFilters;

            var group = new GroupDefinition();
            group.Measures = source.SelectedMeasures;

            group.Dimensions = source.SelectedSlicers;
            var project = group.ToProjectionDocument();
            if (source.AvailableFilters.Any(x => x.AvailableFilterValues.Any(y => y.Active)))
                result.Pipeline.Add(match.ToMatchDocument());
            result.Pipeline.Add(group.ToGroupDocument());

            result.Pipeline.Add(project);
            return result;
        }