private void Parse_Click(object sender, RoutedEventArgs e) { // Save user settings for later Properties.Settings.Default["DirectoryPath"] = TextBox_DirectoryPath.Text; Properties.Settings.Default["DeviceSelectedIndex"] = ComboBox_DetectorType.SelectedIndex; Properties.Settings.Default.Save(); // Check directory is valid if (TextBox_DirectoryPath.Text == string.Empty) { MessageBox.Show("You have not specified a directory.", "No Directory Entered"); return; } else if (Directory.Exists(TextBox_DirectoryPath.Text) == false) { MessageBox.Show("The directory entered does not exist.", "Directory Doesn't Exist"); return; } directoryOfFiles = TextBox_DirectoryPath.Text; // Check detector dropdown is selected if (ComboBox_DetectorType.SelectedIndex == -1) { MessageBox.Show("A detector has not been selected from the dropdown list.", "Select Detector"); return; } // Check file type dropdown is selected FileExt fileExt = null; if (ComboBox_FileType.Visibility == Visibility.Visible) { if (ComboBox_FileType.SelectedItem == null) { MessageBox.Show("A file type has not been selected from the dropdown list.", "Select File Type"); return; } fileExt = (FileExt)((ComboBoxItem)ComboBox_FileType.SelectedItem).Tag; } else { fileExt = (FileExt)(TextBlock_FileType.Tag); } // Get FileParser selected DeviceFileParser = fileExt.FileParser; // Register callbacks DeviceFileParser.RegisterCallback(this); // Get all files from directory var allFilePaths = DeviceFileParser.GetAllFilePaths(directoryOfFiles); if (allFilePaths.Count() == 0) { MessageBox.Show("There were no " + fileExt.FileExtName + " files found found in the directory given.", "No Files Found"); return; } // Initialize file parser with files DeviceFileParser.InitializeFilePaths(allFilePaths); // Parse files Thread parseThread = new Thread(new ThreadStart(DeviceFileParser.Parse)); parseThread.Start(); }