public List<FileInfo> FindFiles(String data, String directory, int fileBufferize) { try { callerThread = Thread.CurrentThread; FolderSearcher folderSearcher = new FolderSearcher(directory, SetAllFilesSearched, AddToBaseList); folderThread = new Thread(folderSearcher.FindFilesToSearch); folderThread.IsBackground = true; folderThread.Start(); searchThreads = new Thread[threadCount]; for (int i = 0; i < threadCount; i++) { FileSearcher fileSearcher = new FileSearcher( data, fileBufferize, IsAllFilesSearched, GetListCount, AddFileInfo, GetFirstFileInfo ); searchThreads[i] = new Thread(fileSearcher.TestFiles); searchThreads[i].IsBackground = true; searchThreads[i].Start(); } folderThread.Join(); for (int i = 0; i < threadCount; i++) { searchThreads[i].Join(); } return new List<FileInfo>(resultFiles.Values); } catch (ThreadInterruptedException e) { return null; } }
public static List <DataFixModel> FindMismatches(string selectedFolder, List <DataFixModel> foundInDatabaseButNotFolderDataFixModels, List <DataFixModel> foundInFolderButNotDatabaseDataFixModels) { List <DataFixModel> foundInFolderDataFixModels = new List <DataFixModel>(); List <DataFixModel> foundInDataBaseDataFixModels = new List <DataFixModel>(); List <DataFixModel> foundInFolderAndDatabaseDataFixModels = new List <DataFixModel>(); foundInFolderDataFixModels = FolderSearcher.FindDataFixModelsInFolders(selectedFolder); foundInDataBaseDataFixModels = SqlConnector.FindDataFixesInDataBase(); //DataFixModel testFolder = foundInFolderDataFixModels.Where( x => x.MajorVersion == 2018 && x.MinorVersion == 19 && x.BuildVersion == 0 && x.RevnVersion == 2 ).FirstOrDefault(); //DataFixModel testDatabase = foundInDataBaseDataFixModels.Where(x => x.MajorVersion == 2018 && x.MinorVersion == 19 && x.BuildVersion == 0 && x.RevnVersion == 2).FirstOrDefault(); //foundInFolderDataFixModels.Clear(); //foundInFolderDataFixModels.Add(testFolder); //foundInDataBaseDataFixModels.Clear(); //foundInDataBaseDataFixModels.Add(testDatabase ); //foundInFolderDataFixModels.OrderBy( x => x.Version ); //foundInDataBaseDataFixModels.OrderBy(x => x.Version); foreach (DataFixModel dm in foundInFolderDataFixModels) { DataFixModel res; res = foundInDataBaseDataFixModels.Where(x => x.MajorVersion == dm.MajorVersion && x.MinorVersion == dm.MinorVersion && x.BuildVersion == dm.BuildVersion && x.RevnVersion == dm.RevnVersion).FirstOrDefault(); if (res != null) { foundInFolderAndDatabaseDataFixModels.Add(dm); } } foreach (DataFixModel dm in foundInDataBaseDataFixModels) { DataFixModel res; res = foundInFolderDataFixModels.Where(x => x.MajorVersion == dm.MajorVersion && x.MinorVersion == dm.MinorVersion && x.BuildVersion == dm.BuildVersion && x.RevnVersion == dm.RevnVersion).FirstOrDefault(); if (res == null) { foundInDatabaseButNotFolderDataFixModels.Add(dm); } } foreach (DataFixModel dm in foundInFolderDataFixModels) { DataFixModel res; res = foundInDataBaseDataFixModels.Where(x => x.MajorVersion == dm.MajorVersion && x.MinorVersion == dm.MinorVersion && x.BuildVersion == dm.BuildVersion && x.RevnVersion == dm.RevnVersion).FirstOrDefault(); if (res == null) { foundInFolderButNotDatabaseDataFixModels.Add(dm); } } return(foundInFolderAndDatabaseDataFixModels); }