Beispiel #1
0
    internal static List <QueryToken> GetParentKeys(PredictorMainQueryEmbedded mainQuery)
    {
        if (mainQuery.GroupResults)
        {
            return(mainQuery.Columns.Select(a => a.Token.Token).Where(t => !(t is AggregateToken)).ToList());
        }

        var qd = QueryLogic.Queries.QueryDescription(mainQuery.Query.ToQueryName());

        return(new List <QueryToken> {
            QueryUtils.Parse("Entity", qd, 0)
        });
    }
Beispiel #2
0
        static QueryRequest GetMainQueryRequest(PredictorMainQueryEmbedded mq)
        {
            return(new QueryRequest
            {
                QueryName = mq.Query.ToQueryName(),

                GroupResults = mq.GroupResults,

                Filters = mq.Filters.ToFilterList(),

                Columns = mq.Columns.Select(c => new Column(c.Token.Token, null)).ToList(),

                Pagination = new Pagination.All(),
                Orders = Enumerable.Empty <Order>().ToList(),
            });
        }
Beispiel #3
0
        public static QueryRequest ToMultiColumnQuery(PredictorMainQueryEmbedded mainQuery, PredictorSubQueryEntity sq)
        {
            var parentKey = sq.Columns.SingleEx(a => a.Usage == PredictorSubQueryColumnUsage.ParentKey);

            var filterList = mainQuery.Filters.ToFilterList();

            var mainFilters       = mainQuery.Query.Is(sq.Query) ? filterList : filterList.Select(f => PrependToken(f, parentKey.Token.Token)).ToList();
            var additionalFilters = sq.Filters.ToFilterList();

            var columns = sq.Columns.Select(c => new Column(c.Token.Token, null)).ToList();

            return(new QueryRequest
            {
                GroupResults = true,
                QueryName = sq.Query.ToQueryName(),
                Filters = mainFilters.Concat(additionalFilters).ToList(),
                Columns = columns,
                Orders = new List <Order>(),
                Pagination = new Pagination.All(),
            });
        }
Beispiel #4
0
    public static void ParseData(this PredictorMainQueryEmbedded mainQuery)
    {
        QueryDescription description = QueryLogic.Queries.QueryDescription(mainQuery.Query.ToQueryName());

        mainQuery.ParseData(description);
    }