/// <summary> /// Initializes a new instance of the <see cref="AnalysisExecutionContext"/> class. /// </summary> /// <param name="analysisConfiguration">Analysis configuration</param> /// <param name="filterParameters">Filter parameters</param> /// <param name="recordIdentification">Record identification</param> /// <param name="linkId">Link id</param> public AnalysisExecutionContext(UPConfigAnalysis analysisConfiguration, Dictionary <string, object> filterParameters, string recordIdentification = null, int linkId = 0) { this.AnalysisConfiguration = analysisConfiguration; this.FilterParameters = filterParameters; this.LinkRecordIdentification = recordIdentification; this.LinkId = linkId; }
/// <summary> /// Continues with filter parameters /// </summary> /// <param name="filterParameters">Filter parameters</param> public void ContinueWithFilterParameters(Dictionary <string, object> filterParameters) { Dictionary <string, object> additionalParameters = this.ViewReference.ContextValueForKey("AdditionalParameters").JsonDictionaryFromString(); if (additionalParameters == null) { this.FilterParameters = filterParameters; } else if (filterParameters == null || filterParameters.Count == 0) { this.FilterParameters = additionalParameters; } else { var dict = new Dictionary <string, object>(additionalParameters); dict.Append(filterParameters); this.FilterParameters = dict; } if (this.IsQuery) { this.ContinueWithQuery(this.FilterParameters); return; } UPConfigAnalysis configAnalysis = ConfigurationUnitStore.DefaultStore.AnalysisByName(this.AnalysisName); this.Analysis = null; if (configAnalysis != null) { AnalysisQueryExecutionContext queryExecutionContext; if (this.RecordIdentification?.Length > 0) { queryExecutionContext = new AnalysisQueryExecutionContext(configAnalysis, this.FilterParameters, this.RecordIdentification, this.LinkId); } else { queryExecutionContext = new AnalysisQueryExecutionContext(configAnalysis, this.FilterParameters); } if (queryExecutionContext != null) { this.Analysis = new Analysis(queryExecutionContext, this.Options); } } if (this.Analysis == null) { var analysisNotFound = $"Analysis {this.AnalysisName} could not be loaded"; this.ReportError(new Exception(analysisNotFound), false); return; } this.AnalysisSettings = this.Analysis.DefaultExecutionSettings; this.Analysis.ComputeResultWithSettingsRequestOption(this.AnalysisSettings, this.RequestOption, this); }
/// <summary> /// Initializes a new instance of the <see cref="AnalysisQueryExecutionContext"/> class. /// </summary> /// <param name="analysisConfiguration">Analysis configuration</param> /// <param name="filterParameters">Filter parameters</param> /// <param name="recordIdentification">Record identification</param> /// <param name="linkId">Link id</param> public AnalysisQueryExecutionContext(UPConfigAnalysis analysisConfiguration, Dictionary <string, object> filterParameters, string recordIdentification = "", int linkId = 0) : base(analysisConfiguration, filterParameters, recordIdentification, linkId) { this.QueryConfiguration = ConfigurationUnitStore.DefaultStore.QueryByName(analysisConfiguration.QueryName); }