public DistributionGroupAggregationOperation(Type valuesDataType, string parameters) { _valuesDataType = UniversalValue.UniversalClassTypeByType(valuesDataType); var boundaries = parameters.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(t => UniversalValue.ParseFromString(valuesDataType, t)).ToList(); if (boundaries.Count == 0) { throw new Exception("boundaries list is empty"); } List <DistributionGroup> distributionGroups = new List <DistributionGroup>(); UniversalValue minBound, maxBound; switch (_valuesDataType) { case UniversalValue.UniversalClassType.Numeric: minBound = new UniversalValue(Double.MinValue); maxBound = new UniversalValue(Double.MaxValue); break; case UniversalValue.UniversalClassType.TimeSpan: minBound = new UniversalValue(TimeSpan.MinValue); maxBound = new UniversalValue(TimeSpan.MaxValue); break; default: throw new Exception("Type " + _valuesDataType + " not supported for interval distribution groupping"); } distributionGroups.Add(new DistributionGroup(minBound, boundaries.First())); for (int i = 0; i < boundaries.Count - 1; i++) { distributionGroups.Add(new DistributionGroup(boundaries[i], boundaries[i + 1])); } distributionGroups.Add(new DistributionGroup(boundaries.Last(), maxBound)); _distributionGroups = distributionGroups; }
public DistributionGroupAggregationOperation(Type valuesDataType, string parameters) { _valuesDataType = UniversalValue.UniversalClassTypeByType(valuesDataType); var boundaries = parameters.Split(new[] {'|'}, StringSplitOptions.RemoveEmptyEntries).Select(t => UniversalValue.ParseFromString(valuesDataType, t)).ToList(); if (boundaries.Count == 0) throw new Exception("boundaries list is empty"); List<DistributionGroup> distributionGroups = new List<DistributionGroup>(); UniversalValue minBound, maxBound; switch (_valuesDataType) { case UniversalValue.UniversalClassType.Numeric: minBound = new UniversalValue(Double.MinValue); maxBound = new UniversalValue(Double.MaxValue); break; case UniversalValue.UniversalClassType.TimeSpan: minBound = new UniversalValue(TimeSpan.MinValue); maxBound = new UniversalValue(TimeSpan.MaxValue); break; default: throw new Exception("Type " + _valuesDataType + " not supported for interval distribution groupping"); } distributionGroups.Add(new DistributionGroup(minBound, boundaries.First())); for (int i = 0; i < boundaries.Count - 1; i++) { distributionGroups.Add(new DistributionGroup(boundaries[i], boundaries[i + 1])); } distributionGroups.Add(new DistributionGroup(boundaries.Last(), maxBound)); _distributionGroups = distributionGroups; }
public PercentileAggregationOperation(string parameters, Type valuesDataType) { _valuesDataType = UniversalValue.UniversalClassTypeByType(valuesDataType); var percents = parameters.Split(new [] {'|'}, StringSplitOptions.RemoveEmptyEntries).Select(Double.Parse).ToList(); if (percents.Count == 0) throw new Exception("percentiles list is empty"); _percents = percents; }
public CounterSeriesData(string seriesName, UniversalValue.UniversalClassType valueType, string counterCategory, string counterName, string counterSource, string counterInstance, string counterExtData) { SeriesName = seriesName; ValueType = valueType; CounterCategory = counterCategory; CounterName = counterName; CounterSource = counterSource; CounterInstance = counterInstance; CounterExtData = counterExtData; }
public PercentileAggregationOperation(string parameters, Type valuesDataType) { _valuesDataType = UniversalValue.UniversalClassTypeByType(valuesDataType); var percents = parameters.Split(new [] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(Double.Parse).ToList(); if (percents.Count == 0) { throw new Exception("percentiles list is empty"); } _percents = percents; }