private UnitedSensorValue GetIntegerDataObject(List <int> values, DateTime barStartTime, DateTime barEndTime) { UnitedSensorValue result = new UnitedSensorValue(); FillCommonData(result, barStartTime); IntBarData barData = new IntBarData(); barData.LastValue = values.Any() ? values.Last() : 0; FillNumericData(barData, values); barData.StartTime = barStartTime.ToUniversalTime(); barData.EndTime = barEndTime.ToUniversalTime(); result.Data = JsonConvert.SerializeObject(barData); return(result); }
private void FillNumericData(IntBarData data, List <int> values) { if (values.Any()) { values.Sort(); data.Max = values.Last(); data.Min = values.First(); data.Count = values.Count; data.Mean = CountMean(values); data.Percentiles.Add(new PercentileValueInt(GetPercentile(values, 0.25), 0.25)); data.Percentiles.Add(new PercentileValueInt(GetPercentile(values, 0.5), 0.5)); data.Percentiles.Add(new PercentileValueInt(GetPercentile(values, 0.75), 0.75)); return; } data.Max = 0; data.Min = 0; data.Count = 0; data.Mean = 0; }