public ParallelQueryProcessingStrategy( string name, ProjectionVersion projectionVersion, IProjectionStateHandler stateHandler, Func<IProjectionStateHandler> handlerFactory, ProjectionConfig projectionConfig, IQueryDefinition sourceDefinition, ProjectionNamesBuilder namesBuilder, ILogger logger, SpooledStreamReadingDispatcher spoolProcessingResponseDispatcher, ReaderSubscriptionDispatcher subscriptionDispatcher) : base(name, projectionVersion, projectionConfig, sourceDefinition, logger, subscriptionDispatcher) { _stateHandler = stateHandler; _projectionConfig = projectionConfig; _sourceDefinition = sourceDefinition; _namesBuilder = namesBuilder; _spoolProcessingResponseDispatcher = spoolProcessingResponseDispatcher; if (_sourceDefinition.CatalogStream == SystemStreams.AllStream) { _catalogStreamName = SystemStreams.AllStream; } else if (_sourceDefinition.HasCategories()) { _catalogStreamName = _namesBuilder.GetCategoryCatalogStreamName(_sourceDefinition.Categories[0]); } else { _catalogStreamName = _sourceDefinition.CatalogStream; } }
public ProjectionProcessingStrategy CreateProjectionProcessingStrategy( string name, ProjectionVersion projectionVersion, ProjectionNamesBuilder namesBuilder, IQueryDefinition sourceDefinition, ProjectionConfig projectionConfig, Func<IProjectionStateHandler> handlerFactory, IProjectionStateHandler stateHandler) { if (!sourceDefinition.DisableParallelismOption && projectionConfig.StopOnEof && sourceDefinition.ByStreams && sourceDefinition.DefinesFold && !string.IsNullOrEmpty(sourceDefinition.CatalogStream)) { return new ParallelQueryProcessingStrategy( name, projectionVersion, stateHandler, handlerFactory, projectionConfig, sourceDefinition, namesBuilder, _logger, _spoolProcessingResponseDispatcher, _subscriptionDispatcher); } if (!sourceDefinition.DisableParallelismOption && projectionConfig.StopOnEof && sourceDefinition.ByStreams && sourceDefinition.DefinesFold && sourceDefinition.HasCategories()) { return new ParallelQueryProcessingStrategy( name, projectionVersion, stateHandler, handlerFactory, projectionConfig, sourceDefinition, namesBuilder, _logger, _spoolProcessingResponseDispatcher, _subscriptionDispatcher); } return projectionConfig.StopOnEof ? (ProjectionProcessingStrategy) new QueryProcessingStrategy( name, projectionVersion, stateHandler, projectionConfig, sourceDefinition, _logger, _subscriptionDispatcher) : new ContinuousProjectionProcessingStrategy( name, projectionVersion, stateHandler, projectionConfig, sourceDefinition, _logger, _subscriptionDispatcher); }
public ParallelQueryProcessingStrategy( string name, ProjectionVersion projectionVersion, IProjectionStateHandler stateHandler, Func <IProjectionStateHandler> handlerFactory, ProjectionConfig projectionConfig, IQueryDefinition sourceDefinition, ProjectionNamesBuilder namesBuilder, ILogger logger, SpooledStreamReadingDispatcher spoolProcessingResponseDispatcher, ReaderSubscriptionDispatcher subscriptionDispatcher) : base(name, projectionVersion, projectionConfig, sourceDefinition, logger, subscriptionDispatcher) { _stateHandler = stateHandler; _projectionConfig = projectionConfig; _sourceDefinition = sourceDefinition; _namesBuilder = namesBuilder; _spoolProcessingResponseDispatcher = spoolProcessingResponseDispatcher; if (_sourceDefinition.CatalogStream == SystemStreams.AllStream) { _catalogStreamName = SystemStreams.AllStream; } else if (_sourceDefinition.HasCategories()) { _catalogStreamName = _namesBuilder.GetCategoryCatalogStreamName(_sourceDefinition.Categories[0]); } else { _catalogStreamName = _sourceDefinition.CatalogStream; } }
public void GetQueryDefinition_UnitTest() { IWorkItemStore instance = GetTestInstance(); IQueryDefinition actual = instance.GetQueryDefinition(Guid.Empty); Assert.IsNotNull(actual); }
public ProjectionProcessingStrategy CreateProjectionProcessingStrategy( string name, ProjectionVersion projectionVersion, ProjectionNamesBuilder namesBuilder, IQueryDefinition sourceDefinition, ProjectionConfig projectionConfig, Func <IProjectionStateHandler> handlerFactory, IProjectionStateHandler stateHandler) { if (!sourceDefinition.DisableParallelismOption && projectionConfig.StopOnEof && sourceDefinition.ByStreams && sourceDefinition.DefinesFold && !string.IsNullOrEmpty(sourceDefinition.CatalogStream)) { return(new ParallelQueryProcessingStrategy( name, projectionVersion, stateHandler, handlerFactory, projectionConfig, sourceDefinition, namesBuilder, _logger, _spoolProcessingResponseDispatcher, _subscriptionDispatcher)); } if (!sourceDefinition.DisableParallelismOption && projectionConfig.StopOnEof && sourceDefinition.ByStreams && sourceDefinition.DefinesFold && sourceDefinition.HasCategories()) { return(new ParallelQueryProcessingStrategy( name, projectionVersion, stateHandler, handlerFactory, projectionConfig, sourceDefinition, namesBuilder, _logger, _spoolProcessingResponseDispatcher, _subscriptionDispatcher)); } return(projectionConfig.StopOnEof ? (ProjectionProcessingStrategy) new QueryProcessingStrategy( name, projectionVersion, stateHandler, projectionConfig, sourceDefinition, _logger, _subscriptionDispatcher) : new ContinuousProjectionProcessingStrategy( name, projectionVersion, stateHandler, projectionConfig, sourceDefinition, _logger, _subscriptionDispatcher)); }
public TResult Execute <TResult>(IQueryDefinition <TResult> query) { var handlerType = typeof(IQueryHandler <,>).MakeGenericType(query.GetType(), typeof(TResult)); dynamic handler = _lifeTimeScope.Resolve(handlerType); return(handler.Handle((dynamic)query)); throw new Exception(); }
public ParallelQueryProcessingStrategy( string name, ProjectionVersion projectionVersion, Func<IProjectionStateHandler> handlerFactory, ProjectionConfig projectionConfig, IQueryDefinition sourceDefinition, ProjectionNamesBuilder namesBuilder, ILogger logger, SpooledStreamReadingDispatcher spoolProcessingResponseDispatcher, ReaderSubscriptionDispatcher subscriptionDispatcher) : base(name, projectionVersion, projectionConfig, sourceDefinition, logger, subscriptionDispatcher) { _projectionConfig = projectionConfig; _sourceDefinition = sourceDefinition; _namesBuilder = namesBuilder; _spoolProcessingResponseDispatcher = spoolProcessingResponseDispatcher; }
public ParallelQueryProcessingStrategy( string name, ProjectionVersion projectionVersion, Func <IProjectionStateHandler> handlerFactory, ProjectionConfig projectionConfig, IQueryDefinition sourceDefinition, ProjectionNamesBuilder namesBuilder, ILogger logger, SpooledStreamReadingDispatcher spoolProcessingResponseDispatcher, ReaderSubscriptionDispatcher subscriptionDispatcher) : base(name, projectionVersion, projectionConfig, sourceDefinition, logger, subscriptionDispatcher) { _handlerFactory = handlerFactory; _projectionConfig = projectionConfig; _sourceDefinition = sourceDefinition; _namesBuilder = namesBuilder; _spoolProcessingResponseDispatcher = spoolProcessingResponseDispatcher; }
public static IEnumerable <IPanelDTO> MergeAll(this IQueryDefinition query) { var lastPanelIndex = query.Panels.Max(p => p.Index); var merge = new List <IPanelDTO>(); merge.AddRange(query.Panels); for (int i = 0; i < query.PanelFilters.Count(); i++) { lastPanelIndex += i + 1; var filter = query.PanelFilters.ElementAt(i); var dto = PanelDTO.FromPanelFilterDTO(filter, lastPanelIndex); merge.Add(dto); } return(merge); }
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 void LocalizeDefinition(IQueryDefinition definition, PatientCountQuery localQuery) { if (user.IsInstutional) { return; } var map = new Dictionary <string, ResourceRef>(localQuery.Panels .GetConcepts() .Select(c => new KeyValuePair <string, ResourceRef>(key: c.UniversalId.ToString(), value: new ResourceRef { Id = c.Id, UniversalId = c.UniversalId.ToString() }))); var items = definition.Panels .SelectMany(p => p.SubPanels) .SelectMany(s => s.PanelItems); foreach (var item in items) { var name = item.Resource?.UiDisplayName; if (map.TryGetValue(item.Resource.UniversalId, out var repl)) { item.Resource = new ResourceRef { Id = repl.Id, UniversalId = repl.UniversalId, UiDisplayName = name }; } } foreach (var filter in definition.PanelFilters) { if (map.TryGetValue(filter.Concept.UniversalId, out var replFilterConcept)) { filter.Concept.Id = replFilterConcept.Id; filter.Concept.UniversalId = replFilterConcept.UniversalId; } } }
partial void QueryType_SetCondition(ref IQueryDefinition instance, ref IQueryType setValue);
/// <summary> /// /// </summary> /// <param name="id">ID of this extractor.</param> /// <param name="queryDefinition">Definition of a query /// that will produce rows.</param> public DataBaseExtractor(string id, IQueryDefinition queryDefinition) { this.ID = id; this.QueryDefinition = queryDefinition; this.ExtractedData = null; }
public PanelValidationContext(IQueryDefinition query, PreflightResources check, IEnumerable <Panel> allowed) : this(query, check) { Allowed = allowed; }
public PanelValidationContext(IQueryDefinition query, PreflightResources check) { PreflightCheck = check; Requested = query.All(); Allowed = new Panel[] { }; }