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