public IList <DBTagInfo> GetContainTags(DBFileInfo monitoredFile) { IList <DBTagInfo> tagInfos = new List <DBTagInfo>(); if (monitoredFile.IsNull()) { return(tagInfos); } string[] array = monitoredFile.Tag.Split(';'); for (int i = 0; i < array.Length; i++) { int tagId = -1; if (!Int32.TryParse(array[i], out tagId)) { continue; } DBTagInfo tagInfo = TagInfos.FirstOrDefault(tag => tag.ID == tagId); if (tagInfo.IsNull()) { continue; } tagInfos.Add(tagInfo); } return(tagInfos); }
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); }