public async Task <PanelValidationContext> GetPanelsAsync(IQueryDefinition query) { var resources = await GetPreflightResourcesAsync(query.All()); if (!resources.Ok) { log.LogInformation("Preflight Check Failed. Query:{@Query} Preflight:{@Preflight}", query, resources); return(new PanelValidationContext(query, resources)); } var concepts = resources.Concepts(compilerOptions); var panels = GetPanels(query.All(), concepts); return(new PanelValidationContext(query, resources, panels)); }
/// <summary> /// Converts stub AST query definition into local, fully hydrated AST. /// The returned AST is unvalidated. /// </summary> /// <returns>The panels async.</returns> /// <param name="query">Stub AST query definition.</param> public async Task <PanelValidationContext> GetPanelsAsync(IQueryDefinition query) { var resources = await GetPreflightResourcesAsync(query.All()); if (!resources.Ok) { log.LogInformation("Preflight Check Failed. Query:{@Query} Preflight:{@Preflight}", query, resources); return(new PanelValidationContext(query, resources)); } var concepts = resources.Concepts(compilerOptions); var crosswalk = CrosswalkImportIds(query.All(), resources.DirectImportsCheck.Results.Select(r => r.ImportRef)); var panels = GetPanels(crosswalk, concepts); var merged = MergeFilters(panels, resources.GlobalPanelFilters); return(new PanelValidationContext(query, resources, merged)); }
public PanelValidationContext(IQueryDefinition query, PreflightResources check) { PreflightCheck = check; Requested = query.All(); Allowed = new Panel[] { }; }