public IList <DBFolderInfo> GetMonitoredFolderList() { IList <DBFolderInfo> folderList = new List <DBFolderInfo>(); string sqlSelect = "SELECT * FROM " + DataAccess.TABLE_NAME_MONITOREDFOLDER; SQLiteDataReader dr = SqliteHelper.ExecuteReader(DataAccess.ConnectionStringProfile, CommandType.Text, sqlSelect, null); while (dr.Read()) { if (dr.IsDBNull(1)) { continue; } int id = dr.GetInt32(0); string path = dr.GetString(1); string name = dr.GetString(2); int iScanned = dr.GetInt32(3); DBFolderInfo folderInfo = new DBFolderInfo() { ID = id, Path = path, Name = name, IsScanned = (1 == iScanned) ? true : false }; folderList.Add(folderInfo); } dr.Close(); return(folderList); }
public static int InsertFolders(IList <IFolder> folders) { IList <DBFolderInfo> convertedFolders = new List <DBFolderInfo>(); foreach (IFolder iFolder in folders) { DBFolderInfo newFolder = DBFolderInfo.Convert(iFolder); if (newFolder.IsNull()) { continue; } convertedFolders.Add(newFolder); } return(iMonitorFolder.InsertPatchFolders(convertedFolders)); }
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 ExecuteWhenDirectoryScanned(FileScannerProcessEventArgs e) { //DBFolderInfo monitoredFolderInfo = null; //IList<DBFolderInfo> monitoredFolderInfos; //DBFolderInfo existFolder = DBCache.Folders.FirstOrDefault(folder => 0 == string.Compare(folder.Path, e.CurrentDir.FullName, true)); //if (null == existFolder) //{ // monitoredFolderInfo = DBFolderInfo.Convert(e.CurrentDir); // monitoredFolderInfos = new List<DBFolderInfo>() { // monitoredFolderInfo // }; // DBHelper.InsertFolders(monitoredFolderInfos); //} //else //{ // monitoredFolderInfo = existFolder; // monitoredFolderInfos = new List<DBFolderInfo>() { // monitoredFolderInfo // }; // DBHelper.UpdateFolders(monitoredFolderInfos); //} //monitoredFolderInfo.IsScanned = true; //newMonitoredFolderInfos.Add(monitoredFolderInfo); DBFolderInfo existFolder = DBCache.Folders.FirstOrDefault(folder => 0 == string.Compare(folder.Path, e.CurrentDir.FullName, true)); if (!existFolder.IsNull()) { existFolder.IsScanned = true; DBHelper.UpdateFolders(new List <DBFolderInfo>() { existFolder }); } IList <DBFileInfo> filesToAdd = new List <DBFileInfo>(); IList <DBFileInfo> filesToUpgrade = new List <DBFileInfo>(); foreach (ScannedFileInfo fileInfo in e.Files) { if (null == fileInfo || null == fileInfo.File) { continue; } DBFileInfo newfile = DBFileInfo.Convert(fileInfo); //newfile.ParentID = monitoredFolderInfo.ID; DBFileInfo findFile = DBCache.Files.FirstOrDefault(file => 0 == string.Compare(fileInfo.File.FullName, file.Path)); if (findFile.IsNull()) { filesToAdd.Add(newfile); } else { filesToUpgrade.Add(findFile); } } //if (monitoredFolderInfo.ID == -1) //{ // int i = 0; // ; //} DBHelper.InsertFiles(filesToAdd); DBHelper.UpdateFiles(filesToUpgrade); }
private void OnMonitoredFolderSelected(DBFolderInfo monitoredFolderInfo) { //this.eventAggregator.GetEvent<TagChangedEvent>().Publish(tag); }