private void CalculateCumulativeHistogramProbability(BindingList<BatchIntervalMarked> batchIntervalsCollection, BatchType batchType, CaptureState captureState) { BindingList<BatchIntervalMarked> batchIntervals = new BindingList<BatchIntervalMarked>(); batchIntervals = batchIntervalsCollection; SortedDictionary<int, decimal> histogramProbabilities = new SortedDictionary<int, decimal>(); int histogramBinSize = AnalysisConfiguration.HistogramBinSize; histogramProbabilities = new CalculateProbability(batchIntervals).GetProbabilityByPacketRange(_TrimZeroPacketIntervals, histogramBinSize); // Update the cumulative intervals for calculating cumulative probability distributions switch(captureState) { case CaptureState.Marked: _CumulativeMarkedProbabilities = histogramProbabilities; break; case CaptureState.Unmarked: _CumulativeUnmarkedProbabilities = histogramProbabilities; break; } // Convert histogram probabilities to Histogram type collection BindingList<CumulativeHistogram> cumulativeHistogramProbabilityData = new BindingList<CumulativeHistogram>(); foreach (KeyValuePair<int, decimal> data in histogramProbabilities) { CumulativeHistogram h = new CumulativeHistogram(); h.Interval = data.Key; h.Probability = data.Value; h.BatchType = Convert.ToInt32(batchType); h.CaptureState = Convert.ToInt32(captureState); cumulativeHistogramProbabilityData.Add(h); } // Save histogram data CumulativeHistogramData chd = new CumulativeHistogramData(cumulativeHistogramProbabilityData); chd.InsertCumulativeHistogramData(); }