Beispiel #1
0
        private static Dictionary <string, object> TypeDictionary()
        {
            if (typeDictionary == null)
            {
                AnalysisAggregationType aggregationType;
                var dict = new Dictionary <string, object>();
                aggregationType = GetCount();
                dict.SetObjectForKey(aggregationType, aggregationType.Type);
                var arr = new List <object>();
                aggregationType = GetSum();
                dict.SetObjectForKey(aggregationType, aggregationType.Type);
                arr.Add(aggregationType);
                aggregationType = new AnalysisAggregationType("max");
                dict.SetObjectForKey(aggregationType, aggregationType.Type);
                arr.Add(aggregationType);
                aggregationType = new AnalysisAggregationType("min");
                dict.SetObjectForKey(aggregationType, aggregationType.Type);
                arr.Add(aggregationType);
                aggregationType = new AnalysisAggregationType("avg");
                dict.SetObjectForKey(aggregationType, aggregationType.Type);
                arr.Add(aggregationType);
                aggregationType = GetStaticAggregator();
                dict.SetObjectForKey(aggregationType, "static");
                arr.Add(aggregationType);
                typeDictionary = dict;
                allTypes       = arr;
            }

            return(typeDictionary);
        }
Beispiel #2
0
        /// <inheritdoc/>
        public override AnalysisResultColumn ResultColumnWithAggregationType(string aggregationTypeString)
        {
            if (this.currentAggregationType.Type == aggregationTypeString)
            {
                return(this);
            }

            AnalysisAggregationType type = AnalysisAggregationType.WithType(aggregationTypeString);

            return(type == null ? null : new AnalysisSourceFieldResultColumn(this.AnalysisField, type));
        }
        /// <inheritdoc/>
        public override AnalysisResultColumn ResultColumnWithAggregationType(string aggregationTypeString)
        {
            if (this.currentAggregationType.Type == aggregationTypeString || aggregationTypeString == "static")
            {
                return(this);
            }

            AnalysisAggregationType type = AnalysisAggregationType.WithType(aggregationTypeString);

            return(type == null ? null : new AnalysisValueResultColumn(this.AnalysisValue, type));
        }
Beispiel #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AnalysisSourceFieldResultColumn"/> class.
        /// </summary>
        /// <param name="field">Field</param>
        /// <param name="aggregationType">Aggregation type</param>
        public AnalysisSourceFieldResultColumn(AnalysisSourceField field, AnalysisAggregationType aggregationType)
        {
            this.AnalysisField          = field;
            this.currentAggregationType = aggregationType;

            if (field.IsWeightDependent)
            {
                this.WeightField = field.Analysis.WeightField;
            }

            if (field.IsCurrencyDependent)
            {
                this.CurrencyField = field.AnalysisTable.AlternateCurrencyField ?? field.Analysis.CurrencyField;
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AnalysisValueResultColumn"/> class.
        /// </summary>
        /// <param name="field">Field</param>
        /// <param name="aggregationType">Aggregation type</param>
        public AnalysisValueResultColumn(AnalysisValueField field, AnalysisAggregationType aggregationType = null)
        {
            this.AnalysisValue          = field;
            this.currentAggregationType = field.FixedAggregationType ?? aggregationType;

            this.ValueFunction = AnalysisValueFunction.ValueFunctionForFormulaAnalysis(field.ConfigValue?.Parameter, field.Analysis);
            if (this.ValueFunction == null)
            {
                return;
            }

            int fractionDigits = field.Options?.FractionDigits ?? 2;

            this.Format = field.Options?.Format;
        }
Beispiel #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AnalysisSourceFieldResultColumn"/> class.
 /// </summary>
 /// <param name="field">Analysis source field</param>
 public AnalysisSourceFieldResultColumn(AnalysisSourceField field)
     : this(field, AnalysisAggregationType.GetSum())
 {
 }
Beispiel #7
0
 /// <summary>
 /// Gets sum aggregator
 /// </summary>
 /// <returns>Returns sum aggregator</returns>
 public static AnalysisAggregationType GetSum()
 {
     return(sumType ?? (sumType = new AnalysisAggregationType("sum")));
 }
Beispiel #8
0
 /// <summary>
 /// Gets static aggregator
 /// </summary>
 /// <returns>Returns static aggregator</returns>
 public static AnalysisAggregationType GetStaticAggregator()
 {
     return(staticType ?? (staticType = new AnalysisAggregationType("static")));
 }
Beispiel #9
0
 /// <summary>
 /// Gets count aggregator
 /// </summary>
 /// <returns>Returns count aggregator</returns>
 public static AnalysisAggregationType GetCount()
 {
     return(countType ?? (countType = new AnalysisAggregationType("count")));
 }