/// <summary> /// Populates the ListView with all statistics. /// </summary> /// <param name="series">reference to a series object</param> /// <param name="granularity">granularity of current graph</param> private void FillGraphStatistics(Series series, int granularity) { if (null == series) { return; } graphStatistics.Items.Clear(); SeriesGraphStatistics stat = series.GraphStatistics; graphStatistics.Items.Add("Average").SubItems.Add(GetStatistics(stat, StatisticsFunctionKind.Average)); graphStatistics.Items.Add("Minimum").SubItems.Add(GetStatistics(stat, StatisticsFunctionKind.Minimum)); graphStatistics.Items.Add("Maximum").SubItems.Add(GetStatistics(stat, StatisticsFunctionKind.Maximum)); graphStatistics.Items.Add("Median").SubItems.Add(GetStatistics(stat, StatisticsFunctionKind.Median)); graphStatistics.Items.Add("Std. Deviation").SubItems.Add(GetStatistics(stat, StatisticsFunctionKind.StdDeviation)); textBoxGranularity.Text = granularity.ToString(); rawStatistics.Items.Clear(); SeriesRawStatistics raw_stat = series.RawStatistics; rawStatistics.Items.Add("Average").SubItems.Add(GetStatistics(raw_stat, StatisticsFunctionKind.Average)); rawStatistics.Items.Add("Minimum").SubItems.Add(GetStatistics(raw_stat, StatisticsFunctionKind.Minimum)); rawStatistics.Items.Add("Maximum").SubItems.Add(GetStatistics(raw_stat, StatisticsFunctionKind.Maximum)); rawStatistics.Items.Add("Count").SubItems.Add(GetStatistics(raw_stat, StatisticsFunctionKind.Count)); rawStatistics.Items.Add("Std. Deviation").SubItems.Add(GetStatistics(raw_stat, StatisticsFunctionKind.StdDeviation)); rawStatistics.Items.Add("Sum").SubItems.Add(GetStatistics(raw_stat, StatisticsFunctionKind.Sum)); }
/// <summary> /// Get a string representation for statistics /// </summary> /// <param name="stat">reference to a statistics object</param> /// <param name="function">statistics function type</param> /// <returns>string representation of specified statistics</returns> private string GetStatistics(CommonSeriesStatistics stat, StatisticsFunctionKind function) { string result = String.Empty; SeriesGraphStatistics s_gs = null; SeriesRawStatistics s_rs = null; //check statistics type if (stat is SeriesRawStatistics) { s_rs = (SeriesRawStatistics)stat; //if statistics are available, store in variable if (s_rs.IsFunctionAvailable(function)) { switch (function) { //statistics is calculated with 3 digits precision case StatisticsFunctionKind.Average: result = s_rs.Average.ToString("0.000"); break; case StatisticsFunctionKind.Count: result = s_rs.Count.ToString("0.000"); break; case StatisticsFunctionKind.Maximum: result = s_rs.Maximum.ToString("0.000"); break; case StatisticsFunctionKind.Minimum: result = s_rs.Minimum.ToString("0.000"); break; case StatisticsFunctionKind.StdDeviation: result = s_rs.StdDeviation.ToString("0.000"); break; case StatisticsFunctionKind.Sum: result = s_rs.Sum.ToString("0.000"); break; default: result = "Unknown function"; break; } } else { //statistics not available result = "N/A"; } } //check statistics type if (stat is SeriesGraphStatistics) { s_gs = (SeriesGraphStatistics)stat; //if statistics are available, store in variable if (s_gs.IsFunctionAvailable(function)) { switch (function) { case StatisticsFunctionKind.Average: result = s_gs.Average.ToString("0.000"); break; case StatisticsFunctionKind.Maximum: result = s_gs.Maximum.ToString("0.000"); break; case StatisticsFunctionKind.Minimum: result = s_gs.Minimum.ToString("0.000"); break; case StatisticsFunctionKind.Median: result = s_gs.Median.ToString("0.000"); break; case StatisticsFunctionKind.StdDeviation: result = s_gs.StdDeviation.ToString("0.000"); break; default: result = "Unknown function"; break; } } else { //statistics not available result = "N/A"; } } return(result); }