private static List <string> GetContextMenuOptions(ICrmDataSource dataSource) { var contextMenuOptions = new List <string>(); var configStore = ConfigurationUnitStore.DefaultStore; for (var j = 0; j < dataSource.NumberOfResultTables; j++) { var infoAreaId = dataSource.ResultTableAtIndex(j).InfoAreaId; var infoAreaLabel = string.Empty; if (infoAreaId?.Length > 0) { var configInfoArea = configStore.InfoAreaConfigById(infoAreaId); var expand = configStore.ExpandByName(infoAreaId); var fieldControl = configStore.FieldControlByNameFromGroup("Details", expand.FieldGroupName); if (configInfoArea != null && expand != null && fieldControl != null) { infoAreaLabel = LocalizedString.TextAnalysesShowParam.Replace("%@", configInfoArea.SingularName); } } contextMenuOptions.Add(infoAreaLabel); } return(contextMenuOptions); }
private void ContinueWithQueryResult(ICrmDataSource dataSource) { AnalysisProcessing processing = new AnalysisProcessing(this, this.currentSettings, dataSource); AnalysisResult result = processing.ComputeResult(); IAnalysisDelegate theDelegate = this.TheDelegate; this.TheDelegate = null; if (result.Error != null) { theDelegate.AnalysisDidFailWithError(this, result.Error); } else { theDelegate.AnalysisDidFinishWithResult(this, result); } }
private List <object> CreateColumnInfoArray(ICrmDataSource dataSource) { var columnInfoArray = new List <object>(); foreach (AnalysisSourceField col in this.AnalysisResult.DetailsFields) { if (col.QueryResultFieldIndex < 0) { continue; } ICrmDataSourceField field = dataSource.FieldAtIndex(col.QueryResultFieldIndex); if (field == null) { continue; } columnInfoArray.Add(new AnalysisDrillThruColumn(col, field)); } return(columnInfoArray); }
/// <summary> /// Cache item execution context result /// </summary> /// <param name="executionContext">Execution context</param> /// <param name="result">Result</param> public void AddCacheItemWithExecutionContextResult(AnalysisExecutionContext executionContext, ICrmDataSource result) { AnalysisDataSourceCacheItem cacheItem = new AnalysisDataSourceCacheItem(result, executionContext); this.AddCacheItem(cacheItem); }
/// <summary> /// Initializes a new instance of the <see cref="AnalysisProcessing"/> class. /// </summary> /// <param name="analysis">Analysis</param> /// <param name="settings">Settings</param> /// <param name="dataSource">Data source</param> public AnalysisProcessing(Analysis analysis, AnalysisExecutionSettings settings, ICrmDataSource dataSource) { this.Analysis = analysis; this.Settings = settings; this.DataSource = dataSource; if (this.Settings.ResultColumns.Count > 0) { this.resultColumns = new List <object>(); foreach (AnalysisResultColumn col in this.Settings.ResultColumns) { this.resultColumns.Add(new AnalysisProcessingResultColumn(col, this)); } } }
/// <summary> /// Initializes a new instance of the <see cref="AnalysisResult"/> class. /// </summary> /// <param name="analysis">Analysis</param> /// <param name="dataSource">Data source</param> public AnalysisResult(Analysis analysis, ICrmDataSource dataSource) { this.Analysis = analysis; this.Settings = this.Analysis.CurrentSettings; this.DataSource = dataSource; }
/// <summary> /// Initializes a new instance of the <see cref="AnalysisDataSourceCacheItem"/> class. /// </summary> /// <param name="dataSource">Data source</param> /// <param name="executionContext">Execution context</param> public AnalysisDataSourceCacheItem(ICrmDataSource dataSource, AnalysisExecutionContext executionContext) { this.DataSource = dataSource; this.ExecutionContext = executionContext; }
/// <inheritdoc /> public void ExecutionContextDidFinishWithResult(AnalysisExecutionContext executionContext, ICrmDataSource result) { if (this.dataSourceCache == null) { this.dataSourceCache = new AnalysisDataSourceCache(); } this.dataSourceCache.AddCacheItemWithExecutionContextResult(this.currentContext, result); this.ContinueWithQueryResult(result); }