Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
 public PanelValidationContext(IQueryDefinition query, PreflightResources check)
 {
     PreflightCheck = check;
     Requested      = query.All();
     Allowed        = new Panel[] { };
 }