예제 #1
0
        private List <StarTranslationMemoryMetadata> GetTransitTmsForLanguagePair(string pathToTempFolder,
                                                                                  string packageName, LanguagePair languagePair)
        {
            var availableTms     = new List <StarTranslationMemoryMetadata>();
            var metadataFileInfo = new MetadataFileInfo
            {
                SourceMtFilesPath = new List <string>(),
                SourceTmFilesPath = new List <string>(),
                TargetMtFilesPath = new List <string>(),
                TargetTmFilesPath = new List <string>()
            };

            var sourceFilesExtension = Path.GetExtension(languagePair.SourceFile[0]);
            var targetFilesExtension = Path.GetExtension(languagePair.TargetFile[0]);

            if (!_fileService.AreFilesExtensionsSupported(sourceFilesExtension, targetFilesExtension))
            {
                return(availableTms);
            }

            //_AXTR TMs/MTs
            var tempDirInfo = new DirectoryInfo(pathToTempFolder);
            var allTms      = tempDirInfo.GetFiles("_AEXTR_*", SearchOption.TopDirectoryOnly).GroupBy(f => f.Extension);

            GroupTmsIntoLists(allTms, targetFilesExtension, sourceFilesExtension, metadataFileInfo);
            SetAvailableTms(availableTms, languagePair, metadataFileInfo, packageName);

            //Ref folder tms
            var refFolderPath = Path.Combine(pathToTempFolder, "REF");

            if (Directory.Exists(refFolderPath))
            {
                var refFolderDirectories = Directory.GetDirectories(refFolderPath);

                foreach (var subDirectory in refFolderDirectories)
                {
                    var subDirFileInfo = new DirectoryInfo(subDirectory).GetFiles().GroupBy(f => f.Extension);
                    GroupTmsIntoLists(subDirFileInfo, targetFilesExtension, sourceFilesExtension, metadataFileInfo);
                }
                metadataFileInfo.IsRefFolderMetadata = true;
                SetAvailableTms(availableTms, languagePair, metadataFileInfo, packageName);
            }

            if (availableTms.Any())
            {
                languagePair.HasTm = true;
            }
            return(availableTms);
        }