private void textBox_OriginalDirectory_DragDrop(object sender, DragEventArgs e) { // Extract the data from the DataObject-Container into a string list var directoryList = (string[])e.Data.GetData(DataFormats.FileDrop, false); if (directoryList.Length == 2 && Directory.Exists(directoryList[0]) && Directory.Exists(directoryList[1])) { var pairedFiles = new PairedFiles(directoryList[0], directoryList[1], new string[] { "*.sdlxliff" }, Processor.Settings.SearchSubFolders).PairedProcessingFiles; var i0 = 0; var i1 = 0; foreach (var pairedFile in pairedFiles) { if (pairedFile.OriginalFilePath == null || pairedFile.UpdatedFilePath == null) { continue; } if (pairedFile.OriginalFilePath.LastWriteTime > pairedFile.UpdatedFilePath.LastWriteTime) { i0++; } else if (pairedFile.OriginalFilePath.LastWriteTime < pairedFile.UpdatedFilePath.LastWriteTime) { i1++; } } if (i0 > i1) { textBox_OriginalDirectory.Text = directoryList[1]; textBox_UpdatedDirectory.Text = directoryList[0]; } else { textBox_OriginalDirectory.Text = directoryList[0]; textBox_UpdatedDirectory.Text = directoryList[1]; } } else if (Directory.Exists(directoryList[0])) { textBox_OriginalDirectory.Text = directoryList[0]; } }
public void ProcessFiles(bool compareDirectoryOfFiles) { ComparisonTotalFiles = 0; ComparisonTotalSegments = 0; ComparisonTotalContentChanges = 0; ComparisonTotalStatusChanges = 0; ComparisonTotalComments = 0; #region | get list of paired processing files | var pairedFiles = new List <PairedFiles.PairedFile>(); switch (compareDirectoryOfFiles) { case false: pairedFiles = new PairedFiles(Settings.FilePathOriginal, Settings.FilePathUpdated).PairedProcessingFiles; break; case true: pairedFiles = new PairedFiles(Settings.DirectoryPathOriginal, Settings.DirectoryPathUpdated, new[] { "*.sdlxliff" }, Settings.SearchSubFolders).PairedProcessingFiles; break; } #endregion var fileComparisonParagraphUnits = new Dictionary <Comparer.Comparer.FileUnitProperties, Dictionary <string, Dictionary <string, Comparer.Comparer.ComparisonParagraphUnit> > >(); var comparer = new Comparer.Comparer(); try { comparer.Progress += comparer_Progress; var sdlXliffParser = new Parser(); try { sdlXliffParser.Progress += parser_Progress; foreach (var pairedFile in pairedFiles) { if (!pairedFile.IsError) { try { #region | process paired file | sdlXliffParser.GetParagraphUnits(pairedFile.OriginalFilePath.FullName, pairedFile.UpdatedFilePath.FullName); var comparisonParagraphUnits = comparer.GetComparisonParagraphUnits(sdlXliffParser.FileParagraphUnitsOriginal, sdlXliffParser.FileParagraphUnitsUpdated); fileComparisonParagraphUnits.Add(new Comparer.Comparer.FileUnitProperties(pairedFile.OriginalFilePath.FullName, pairedFile.UpdatedFilePath.FullName , sdlXliffParser.GetSegmentCount(sdlXliffParser.FileParagraphUnitsOriginal), sdlXliffParser.GetSegmentCount(sdlXliffParser.FileParagraphUnitsUpdated) , comparisonParagraphUnits), comparisonParagraphUnits); #endregion } catch (Exception ex) { throw new Exception("File: " + pairedFile.UpdatedFilePath.FullName + "; \r\n" + ex.Message); } } else { fileComparisonParagraphUnits.Add(new Comparer.Comparer.FileUnitProperties(pairedFile.OriginalFilePath.FullName, "", 0, 0, null), null); } } } finally { sdlXliffParser.Progress -= parser_Progress; } } finally { comparer.Progress -= comparer_Progress; } #region | create report | var reportFileName = Settings.ReportFileName; if (!reportFileName.ToLower().EndsWith(".xml")) { reportFileName += ".xml"; } var reportFilePath = Path.Combine(Settings.ReportDirectory, reportFileName); SetTotalCounters(fileComparisonParagraphUnits); CreateReport(reportFilePath, fileComparisonParagraphUnits); #endregion }