/// <summary> /// Adds drillup option /// </summary> /// <param name="option">Option</param> public void AddDrillupOption(AnalysisDrillupOption option) { if (this.drillupOptions == null) { this.drillupOptions = new List <object> { option }; } else { this.drillupOptions.Add(option); } }
/// <summary> /// LogSettings with drillup option /// </summary> /// <param name="option">Option</param> /// <returns>Analysis execution settings</returns> public AnalysisExecutionSettings SettingsWithDrillupOption(AnalysisDrillupOption option) { AnalysisCategoryFilter removeFilter = null; AnalysisCategoryFilter lastFilter = null; foreach (AnalysisFilter filterCondition in this.Conditions) { if (!(filterCondition is AnalysisCategoryFilter)) { continue; } AnalysisCategoryFilter categoryFilter = (AnalysisCategoryFilter)filterCondition; if (categoryFilter.Category.Key == option.RemoveCategory.Key) { removeFilter = categoryFilter; } else { lastFilter = categoryFilter; } } List <object> condArray = new List <object>(this.Conditions); AnalysisCategory drillupCategory = null; if (removeFilter != null) { condArray.Remove(removeFilter); drillupCategory = this.Category; } else if (lastFilter != null && option.RemoveCategory.Key == this.Category.Key) { condArray.Remove(lastFilter); drillupCategory = lastFilter.Category; } return(new AnalysisExecutionSettings(this.Analysis, drillupCategory, this.XCategory, this.ResultColumns, condArray, condArray.Count > 0 || this.Analysis.DefaultExecutionSettings.ShowEmpty, this.CurrencyCode)); }