private void AddToScanList(object sender, RoutedEventArgs e)
        {
            var    button = (Button)e.Source;
            string row    = (string)button.DataContext;

            try
            {
                if (Configuration.PathsNotToScan.Contains(row))
                {
                    Configuration.PathsNotToScan.Remove(row);
                    var dir = FlaggedDirectories.Where(f => f.FullPath == row).FirstOrDefault();
                    if (dir != null)
                    {
                        dir.IsScanable = true;
                    }
                    else
                    {
                        var file = FlaggedFiles.Where(f => f.FullPath == row).FirstOrDefault();
                        if (file != null)
                        {
                            file.IsScanable = true;
                        }
                    }

                    button.IsEnabled = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Error: {ex.Message}", "Error");
            }
        }
        public async Task StartScanner(IProgress <ScanProgress> progress)
        {
            FlaggedDirectories.Clear();
            FlaggedFiles.Clear();

            var drives = DriveInfo.GetDrives();

            foreach (var driveInfo in drives)
            {
                try
                {
                    await Task.Run(async() => { await Scan(driveInfo.Name, progress, token.Token); }, token.Token);
                }
                catch (OperationCanceledException)
                {
                    var timeElapsed = stopwatch.Elapsed;
                    ScanningStatus = $"Cancelled {timeElapsed:c}";
                }
                catch (Exception ex)
                {
                }
                finally
                {
                }
            }
        }
        private void UpdateProgress(object sender, ScanProgress e)
        {
            if (e.IsUpdateStatus)
            {
                ScanningStatus = $"Scanning... {e.CurrentDirectory}";
                return;
            }
            if (stopwatch.IsRunning)
            {
                var timeElapsed = stopwatch.Elapsed;
                ScanningStatus = $"Running... {timeElapsed:c}";
            }

            if (e.IsFile)
            {
                FlaggedFiles.Add(e.File);
            }
            else
            {
                FlaggedDirectories.Add(e.File);
            }
        }