protected override bool JobRunning_Init() { this.eventAggregator = Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance <IEventAggregator>(); if (null == eventAggregator) { return(false); } fileScannerJob = Job as FileScannerJob; if (null == fileScannerJob) { return(false); } DataManager.Instance.FileScanner.Stop(); IList <DBFolderInfo> existedFileList = DataManager.Instance.DBCache.Folders; needToRemovedPaths = existedFileList.Where(folder => !fileScannerJob.FoldersPath.Contains(folder.Path)).ToList(); foreach (string path in fileScannerJob.FoldersPath) { if (string.IsNullOrEmpty(path)) { continue; } bool isExist = false; foreach (DBFolderInfo folder in existedFileList) { if (0 == string.Compare(path, folder.Path, true)) { isExist = true; break; } } if (!isExist) { DirectoryInfo dir = new DirectoryInfo(path); if (null != dir) { DBFolderInfo folder = DBFolderInfo.Convert(dir); needToAddPaths.Add(folder); } } } return(base.JobRunning_Init()); }
private void OpenFolderManagerWindow() { FolderManagerWindow window = new FolderManagerWindow(); window.ShowDialog(); IList <IFolder> selectedFiles = window.SelectedFileList; IList <string> selectedFilesPath = selectedFiles.Select(item => item.FullPath).ToList(); if (window.ResultButtonType == Theme.CustomControl.Dialog.CommonDialog.ResultButtonType.OK) { FileScannerJob job = FileScannerJob.Create(selectedFilesPath); JobManager.Instance.AddJob(job); JobManager.Instance.ForceStart(job); return; DataManager.Instance.FileScanner.Config = new FileScanner.FileScannerConfiguration() { PathsToScan = selectedFilesPath }; DataManager.Instance.FileScanner.StartAsync(); } }