Beispiel #1
0
        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();
        }