/// <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);
     }
 }
Exemplo n.º 2
0
        /// <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));
        }