private int GetLastCaptureBatchId()
 {
     BindingList<CurrentCaptureFile> currentCaptureFiles = new BindingList<CurrentCaptureFile>();
     CaptureFileData cfd = new CaptureFileData();
     currentCaptureFiles = cfd.GetBatchIds();
     int lastBatchId = 0;
     foreach (var item in currentCaptureFiles)
     {
         if (item.CaptureBatchId > lastBatchId)
         {
             lastBatchId = item.CaptureBatchId;
         }
     }
     return lastBatchId;
 }
        public BindingList<CurrentCaptureFile> GetLastCaptureBatchIds()
        {
            BindingList<CurrentCaptureFile> lastBatchIds = new BindingList<CurrentCaptureFile>();

            CaptureFileData cfd = new CaptureFileData();
            var batch = cfd.GetBatchIds();

            var lastMarkedBatchId = (from m in batch
                                     where m.CaptureState == CaptureState.Marked
                                     orderby m.CaptureBatchId descending
                                     select m).FirstOrDefault();

            var lastUnmarkedBatchId = (from m in batch
                                     where m.CaptureState == CaptureState.Unmarked
                                     orderby m.CaptureBatchId descending
                                       select m).FirstOrDefault();

            lastBatchIds.Add(lastMarkedBatchId);
            lastBatchIds.Add(lastUnmarkedBatchId);

            return lastBatchIds;
        }
        public void RecalculateBatchIntervals()
        {
            // Recalculate intervals for all existing batch data using a new interval size

            // First delete all existing batch intervals and cumulative intervals
            BatchIntervalData bid = new BatchIntervalData();
            //bid.RemoveAllBatchIntervals();
            bid.TruncateAllIntervalStatisticAndTestTables();

            // Get a list of all capture files
            CaptureFileData cfd = new CaptureFileData();

            BindingList<CurrentCaptureFile> captureFiles = new BindingList<CurrentCaptureFile>();
            captureFiles = cfd.GetBatchIds();

            // Create new intervals for each capture file and update the cumulative intervals
            foreach (CurrentCaptureFile file in captureFiles)
            {
                BindingList<PacketInterval> intervals = new BindingList<PacketInterval>();
                intervals = CreateBatchIntervals(file.FileName);
                UpdateCumulativeIntervals(intervals);
                UpdateCaptureBatchParseStatusForRecalculation(file.CaptureBatchId);
            }
        }