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); }
/// <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)); }
/// <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; }
/// <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()) { }
/// <summary> /// Gets sum aggregator /// </summary> /// <returns>Returns sum aggregator</returns> public static AnalysisAggregationType GetSum() { return(sumType ?? (sumType = new AnalysisAggregationType("sum"))); }
/// <summary> /// Gets static aggregator /// </summary> /// <returns>Returns static aggregator</returns> public static AnalysisAggregationType GetStaticAggregator() { return(staticType ?? (staticType = new AnalysisAggregationType("static"))); }
/// <summary> /// Gets count aggregator /// </summary> /// <returns>Returns count aggregator</returns> public static AnalysisAggregationType GetCount() { return(countType ?? (countType = new AnalysisAggregationType("count"))); }