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) }); }
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(), }); }
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(), }); }
public static void ParseData(this PredictorMainQueryEmbedded mainQuery) { QueryDescription description = QueryLogic.Queries.QueryDescription(mainQuery.Query.ToQueryName()); mainQuery.ParseData(description); }