private static void CreateHistogramDataFrame(HistogramData histogramData, List<Metric> metricsList)
        {
            try
            {
                for (int i = 0; i < metricsList.Count; i++)
                {
                    if (metricsList[i].GetType() == typeof(SecondTypeErrorProbability))
                    {
                        if (histogramData.Contains(metricsList[i].Value, METRIC_TYPE.SECOND_TYPE_ERROR))
                            histogramData.IncrementMetricAmount(metricsList[i].Value, METRIC_TYPE.SECOND_TYPE_ERROR);
                        else
                            histogramData.SecondTypeError.Add(new HistogramDataElement(metricsList[i].Value, 1));
                    }
                    else if (metricsList[i].GetType() == typeof(FirstTypeErrorProbability))
                    {
                        if (histogramData.Contains(metricsList[i].Value, METRIC_TYPE.FIRST_TYPE_ERROR))
                            histogramData.IncrementMetricAmount(metricsList[i].Value, METRIC_TYPE.FIRST_TYPE_ERROR);
                        else
                            histogramData.FirstTypeError.Add(new HistogramDataElement(metricsList[i].Value, 1));
                    }
                    else if (metricsList[i].GetType() == typeof(MissingProbability))
                    {
                        if (histogramData.Contains(metricsList[i].Value, METRIC_TYPE.MISSING_ERROR))
                            histogramData.IncrementMetricAmount(metricsList[i].Value, METRIC_TYPE.MISSING_ERROR);
                        else
                            histogramData.MissingTypeError.Add(new HistogramDataElement(metricsList[i].Value, 1));
                    }
                    else if (metricsList[i].GetType() == typeof(Precision))
                    {
                        if (histogramData.Contains(metricsList[i].Value, METRIC_TYPE.PRECISION))
                            histogramData.IncrementMetricAmount(metricsList[i].Value, METRIC_TYPE.PRECISION);
                        else
                            histogramData.Precision.Add(new HistogramDataElement(metricsList[i].Value, 1));
                    }
                    else if (metricsList[i].GetType() == typeof(Recall))
                    {
                        if (histogramData.Contains(metricsList[i].Value, METRIC_TYPE.RECALL))
                            histogramData.IncrementMetricAmount(metricsList[i].Value, METRIC_TYPE.RECALL);

                        else
                            histogramData.Recall.Add(new HistogramDataElement(metricsList[i].Value, 1));
                    }
                    else if (metricsList[i].GetType() == typeof(F1Measure))
                    {
                        if (histogramData.Contains(metricsList[i].Value, METRIC_TYPE.F1_MEASURE))
                            histogramData.IncrementMetricAmount(metricsList[i].Value, METRIC_TYPE.F1_MEASURE);
                        else
                            histogramData.F1Measure.Add(new HistogramDataElement(metricsList[i].Value, 1));
                    }
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
 private static void WriteChartData(HistogramData histogramData, Excel.Worksheet xlWorkSheet)
 {
     try
     {
         WriteChartDataMetric(histogramData.SecondTypeError, xlWorkSheet, 1, 2);
         WriteChartDataMetric(histogramData.FirstTypeError, xlWorkSheet, 3, 4);
         WriteChartDataMetric(histogramData.MissingTypeError, xlWorkSheet, 5, 6);
         WriteChartDataMetric(histogramData.Precision, xlWorkSheet, 7, 8);
         WriteChartDataMetric(histogramData.Recall, xlWorkSheet, 9, 10);
         WriteChartDataMetric(histogramData.F1Measure, xlWorkSheet, 11, 12);
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
 private static HistogramData CreateHistogramData(Dictionary<int, List<Metric>> metrics)
 {
     try
     {
         HistogramData histogramData = new HistogramData();
         foreach (var pair in metrics)
             CreateHistogramDataFrame(histogramData, pair.Value);
         return histogramData;
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }