/// <summary> /// Creates a new chart or adds data to an existing one. /// </summary> /// <param name="allDatasetMetricCharts">All results calculated so far.</param> /// <param name="dataset">The dataset name.</param> /// <param name="metric">The metric data.</param> /// <param name="technique">The technique name.</param> private static void StoreTechnique(SortedDictionary<string, Dictionary<string, Chart>> allDatasetMetricCharts, string dataset, Metric metric, string technique) { // Does this dataset have already been added? Dictionary<string, Chart> charts; bool newDataset = (allDatasetMetricCharts.TryGetValue(dataset, out charts) == false); if (newDataset) { charts = new Dictionary<string, Chart>(); } // Does this dataset have already been added? Chart chart = null; charts.TryGetValue(metric.MetricName, out chart); if (metric is BoxSummaryData) { BoxPlot bp = null; if (chart is BoxPlot) { bp = (BoxPlot)chart; } else { bp = new BoxPlot(metric.MetricName, metric.Description); } bool boxAdded = bp.AddBox((BoxSummaryData)metric, technique); if (chart == null && boxAdded) { charts.Add(metric.MetricName, bp); } } else if (metric is LineSeries) { LineChart lc = null; if (chart is LineChart) { lc = (LineChart)chart; } else { lc = new LineChart(metric.MetricName, metric.Description); } bool lineAdded = lc.AddLine((LineSeries)metric, technique); if (chart == null && lineAdded) { charts.Add(metric.MetricName, lc); } } if (newDataset && charts.Count > 0) { allDatasetMetricCharts.Add(dataset, charts); } }
/// <summary> /// Adds the metric. /// </summary> /// <param name="metric">The metric.</param> /// <exception cref="ArgumentException">throws if provided is not LineSeries or BoxSummaryData, the only types currently supported</exception> public void AddMetric(Metric metric) { if (metric is LineSeries || metric is BoxSummaryData) { m_metrics.Add(metric); } else { throw new ArgumentException("The only accepted metric s_metricTypes are either LineSeries or BoxSummaryData currently. "); } }