示例#1
0
        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];
            }
        }
示例#2
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
        }