public void Proceed() { PrepareFileElms(); AssignEarlyRepeatedFiles(); m_proc.Session = Session.Create( FileElm_List.Count, FileParent_List.Count); for (int i = 0; i < FileElm_List.Count; i++) { FileElm fe = FileElm_List[i]; fe.ID = m_proc.Session.StartFile_ID + i; } for (int i = 0; i < FileParent_List.Count; i++) { FileElm_Parent fp = FileParent_List[i]; fp.ID = m_proc.Session.StartFolder_ID + i; } InsertParentFolders(); InsertCandidateFiles(); AssignRepeatedFiles_WithDB(); AssignCoreFile_IDs_AndUpdate_DB(); }
public void FillCandidateFileRow( AddingFiles.Data.DsAddingFiles.CandidateFilesRow dr, FileElm fe) { dr.CandidateFile_ID = fe.ID; dr.Session_ID = m_proc.Session.Session_ID; dr.Name = fe.Name; dr.FolderPath = fe.FolderPath; dr.CandidateFile_ID = fe.ID; dr.UniqueNum_1 = (long)fe.UniqueNum_1; dr.UniqueNum_2 = (long)fe.UniqueNum_2; dr.UniqueNum_3 = (long)fe.UniqueNum_3; dr.UniqueNum_4 = (long)fe.UniqueNum_4; dr.DateModified = fe.DateModified; dr.Size = fe.Size; dr.CandidateFile_ID = fe.ID; dr.FileAdding_Status_ID = (int)fe.Status.ID; dr.StatusMsg = fe.StatusMsg; dr.MovingAction_ID = (int)fe.MovingAction.ID; }
public void AssignEarlyRepeatedFiles() { for (int i = 0; i < FileElm_List.Count; i++) { FileElm fe_I = FileElm_List[i]; if (fe_I.Status != FileStatus.Ready) { continue; } for (int j = i + 1; j < FileElm_List.Count; j++) { FileElm fe_J = FileElm_List[j]; //if (fe_J.Status == FileStatus.Failed || // fe_J.Status == FileStatus.Repeated) if (fe_J.Status != FileStatus.Ready) { continue; } if (fe_J.Size == fe_I.Size && fe_J.UniqueNum_1 == fe_I.UniqueNum_1 && fe_J.UniqueNum_2 == fe_I.UniqueNum_2 && fe_J.UniqueNum_3 == fe_I.UniqueNum_3 && fe_J.UniqueNum_4 == fe_I.UniqueNum_4 ) { fe_J.Status = FileStatus.Repeated; fe_J.Repeated_FileElm = fe_I; } } } }
public void PrepareFileElms() { List <FolderInfo> foldInf_List = new List <FolderInfo>( m_proc.ConfirmingPaths.FolderInfo_List); FileElm_List = new List <FileElm>(100000); FileParent_List = new List <FileElm_Parent>(100000); List <FileElm_Parent> fe_Parent_List = new List <FileElm_Parent>(10000); //foreach (FolderInfo foldInf in foldInf_List) for (int i = 0; i < foldInf_List.Count; i++) { FolderInfo foldInf = foldInf_List[i]; if (foldInf.Status != FolderStatus.Ready) { continue; } fe_Parent_List.Add(new FileElm_Parent { DirectoryInfo = foldInf.DirectoryInfo }); if (foldInf.IncludeSubFolders) { DirectoryInfo[] di_List = null; try { di_List = foldInf.DirectoryInfo.GetDirectories( //"*.*", SearchOption.AllDirectories); "*.*", SearchOption.TopDirectoryOnly); } catch { continue; } foreach (DirectoryInfo di in di_List) { //fe_Parent_List.Add(new FileElm_Parent //{ // DirectoryInfo = di //}); foldInf_List.Add(new FolderInfo { DirectoryInfo = di, Path = di.FullName, IncludeSubFolders = true, Status = FolderStatus.Ready }); } } } foreach (FileElm_Parent fe_Parent in fe_Parent_List) { fe_Parent.TestWriteAccess(); } foreach (FileElm_Parent fe_Parent in fe_Parent_List) { FileInfo[] fiColl = null; try { fiColl = fe_Parent.DirectoryInfo.GetFiles( "*.pdf", SearchOption.TopDirectoryOnly); } catch { continue; } foreach (FileInfo fi in fiColl) { string sLast_4 = Util.Get_FileExtension(fi.Name); if (sLast_4.ToLower() != ".pdf") { continue; } FileElm fiElm = new FileElm { FileInfo = fi, ParentFolder = fe_Parent }; FileElm_List.Add(fiElm); fiElm.PrepareUniqueNums(); } if (fiColl.Length > 0) { FileParent_List.Add(fe_Parent); } } }