private ICollection <Pair <MarkerRecord> > Ranges(int startMarker, int endMarker)
        {
            if (startMarker == endMarker)
            {
                throw new ArgumentException();
            }
            var linkedList = new LinkedList <Pair <MarkerRecord> >();

            if (_markerRecords == null || !_markerRecords.Any())
            {
                return(linkedList);
            }
            MarkerRecord start = null;

            foreach (var markerRecord in _markerRecords.Where(r => r.Marker == startMarker || r.Marker == endMarker))
            {
                if (markerRecord.Marker == startMarker)
                {
                    start = markerRecord;
                }
                else if (markerRecord.Marker == endMarker && start != null)
                {
                    linkedList.AddLast(new Pair <MarkerRecord>(start, markerRecord));
                    start = null;
                }
            }
            return(linkedList);
        }
        private static IList <MarkerRecord> LoadMarkerRecords(string dataFilePrefix)
        {
            var file = dataFilePrefix + MarkerAsciiFileWriter.FileSuffix;

            if (!File.Exists(file))
            {
                return(EmptyArray <MarkerRecord> .Instance);
            }
            var markerRecords = new LinkedList <MarkerRecord>();

            foreach (var line in File.ReadLines(file, Encoding.UTF8))
            {
                if (MarkerRecord.TryParse(line, 0, out var record))
                {
                    markerRecords.AddLast(record);
                }
            }
            return(markerRecords.OrderByTimestamp().ToList());
        }
        private void UpdateMarkers()
        {
            var          markerRecordItems = new List <MarkerRecordItem>(_markerRecords.Count);
            var          markers           = ((ModulePluginComboBox.SelectedItem as FrameworkElement)?.Tag as Plugin)?.Markers;
            MarkerRecord previous          = null;

            foreach (var record in _markerRecords)
            {
                var item = new MarkerRecordItem
                {
                    Marker     = record.Marker,
                    Timestamp  = record.Timestamp,
                    Definition = markers == null ? null : markers.TryGetValue(record.Marker, out var definition) ? definition.FullName : null,
                    DeltaT     = previous == null ? 0 : record.Timestamp - previous.Timestamp
                };
                previous = record;
                markerRecordItems.Add(item);
            }
            MarkerRecordListView.ItemsSource = markerRecordItems;
        }