static void PredictorMultiColumnEntity_Retrieved(PredictorMultiColumnEntity mc) { object queryName = QueryLogic.ToQueryName(mc.Query.Key); QueryDescription description = DynamicQueryManager.Current.QueryDescription(queryName); mc.ParseData(description); }
public static QueryGroupRequest ToMultiColumnQuery(this PredictorEntity predictor, Implementations mainQueryImplementations, PredictorMultiColumnEntity mc) { var mainQueryKey = mc.GroupKeys.FirstEx(); if (!Compatible(mainQueryKey.Token.GetImplementations(), mainQueryImplementations)) { throw new InvalidOperationException($"{mainQueryKey.Token} of {mc.Query} should be of type {mainQueryImplementations}"); } var mainFilters = predictor.Filters.Select(f => predictor.Query.Is(mc.Query) ? ToFilter(f) : ToFilterAppend(f, mainQueryKey.Token)); var additionalFilters = mc.AdditionalFilters.Select(f => ToFilter(f)).ToList(); var groupKeys = mc.GroupKeys.Select(c => new Column(c.Token, null)).ToList(); var aggregates = mc.Aggregates.Select(c => new Column(c.Token, null)).ToList(); return(new QueryGroupRequest { QueryName = mc.Query.ToQueryName(), Filters = mainFilters.Concat(additionalFilters).ToList(), Columns = groupKeys.Concat(aggregates).ToList(), Orders = new List <Order>() }); }