public static AnonymizeTranslationMemory ServerBasedTmGetTranslationUnits(TranslationProviderServer translationProvider, string tmPath, ObservableCollection <SourceSearchResult> sourceSearchResult, List <Rule> selectedRules) { var allTusForLanguageDirections = new List <TranslationUnit>(); System.Windows.Application.Current.Dispatcher.Invoke(delegate { var translationMemory = translationProvider.GetTranslationMemory(tmPath, TranslationMemoryProperties.All); var languageDirections = translationMemory.LanguageDirections; var pi = new PersonalInformation(selectedRules); foreach (var languageDirection in languageDirections) { var unitsCount = languageDirection.GetTranslationUnitCount(); var tmIterator = new RegularIterator(unitsCount); var translationUnits = languageDirection.GetTranslationUnits(ref tmIterator); if (translationUnits != null) { allTusForLanguageDirections.AddRange(translationUnits); foreach (var translationUnit in translationUnits) { var sourceText = translationUnit.SourceSegment.ToPlain(); if (pi.ContainsPi(sourceText)) { var searchResult = new SourceSearchResult { Id = translationUnit.ResourceId.Guid.ToString(), SourceText = sourceText, MatchResult = new MatchResult { Positions = pi.GetPersonalDataPositions(sourceText) }, TmFilePath = tmPath, IsServer = true, SegmentNumber = translationUnit.ResourceId.Id.ToString() }; var targetText = translationUnit.TargetSegment.ToPlain(); if (pi.ContainsPi(targetText)) { searchResult.TargetText = targetText; searchResult.TargetMatchResult = new MatchResult { Positions = pi.GetPersonalDataPositions(targetText) }; } sourceSearchResult.Add(searchResult); } } } } }); return(new AnonymizeTranslationMemory { TmPath = tmPath, TranslationUnits = allTusForLanguageDirections }); }
public static AnonymizeTranslationMemory FileBaseTmGetTranslationUnits(string tmPath, ObservableCollection <SourceSearchResult> sourceSearchResult, List <Rule> selectedRules) { var tm = new FileBasedTranslationMemory(tmPath); var unitsCount = tm.LanguageDirection.GetTranslationUnitCount(); var tmIterator = new RegularIterator(unitsCount); var tus = tm.LanguageDirection.GetTranslationUnits(ref tmIterator); System.Windows.Application.Current.Dispatcher.Invoke(delegate { var pi = new PersonalInformation(selectedRules); foreach (var translationUnit in tus) { var sourceText = translationUnit.SourceSegment.ToPlain(); if (pi.ContainsPi(sourceText)) { var searchResult = new SourceSearchResult { Id = translationUnit.ResourceId.Guid.ToString(), SourceText = sourceText, MatchResult = new MatchResult { Positions = pi.GetPersonalDataPositions(sourceText) }, TmFilePath = tmPath, IsServer = false, SegmentNumber = translationUnit.ResourceId.Id.ToString() }; var targetText = translationUnit.TargetSegment.ToPlain(); if (pi.ContainsPi(targetText)) { searchResult.TargetText = targetText; searchResult.TargetMatchResult = new MatchResult { Positions = pi.GetPersonalDataPositions(targetText) }; } sourceSearchResult.Add(searchResult); } } }); return(new AnonymizeTranslationMemory { TmPath = tmPath, TranslationUnits = tus.ToList() }); }