Beispiel #1
0
        private void goButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (!string.IsNullOrEmpty(browseTextBox.Text))
                {
                    string directory = browseTextBox.Text;
                    goButton.IsEnabled     = false;
                    buttonCancel.IsEnabled = true;

                    if (radioButtonRepeated.IsChecked.GetValueOrDefault())
                    {
                        _currentThread = new Thread(() =>
                        {
                            List <HashedFile> repeatedFiles             = _repeatedFilesFinder.GetRepeatedFiles(directory);
                            List <RepeatedFileModel> repeatedFileModels = new List <RepeatedFileModel>();

                            foreach (var repeatedFile in repeatedFiles)
                            {
                                foreach (var file in repeatedFile.FilesWithHash)
                                {
                                    repeatedFileModels.Add(new RepeatedFileModel()
                                    {
                                        Hash = repeatedFile.ComputedHash, Path = file
                                    });
                                }
                            }

                            Dispatcher.Invoke(new Action(() =>
                            {
                                dataGridRepeatedFiles.ItemsSource = repeatedFileModels;
                                goButton.IsEnabled     = true;
                                buttonCancel.IsEnabled = false;
                            }));
                        });

                        _currentThread.Start();
                    }
                    else
                    {
                        _currentThread = new Thread(() =>
                        {
                            List <Tag> tagsInFileNames = _tagExtractor.GetTagsInFileNames(directory);

                            Dispatcher.Invoke(new Action(() =>
                            {
                                dataGridTags.ItemsSource = tagsInFileNames;
                                goButton.IsEnabled       = true;
                                buttonCancel.IsEnabled   = false;
                            }));
                        });

                        _currentThread.Start();
                    }
                }
                else
                {
                    MessageBox.Show("Pasta não informada.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }