예제 #1
0
        private List <AnonymizeTranslationMemory> GetTranslationUnitsToAnonymize(List <SourceSearchResult> selectedSearchResult)
        {
            var tusToAnonymize = new List <AnonymizeTranslationMemory>();

            foreach (var selectedResult in selectedSearchResult)
            {
                foreach (var anonymizeUnits in _anonymizeTranslationMemories)
                {
                    var tuToAnonymize =
                        anonymizeUnits.TranslationUnits.FirstOrDefault(n => n.SourceSegment.ToPlain().Equals(selectedResult.SourceText));
                    if (tuToAnonymize != null)
                    {
                        // if there is an tm with the same path add translation units to that tm
                        var anonymizeTu = tusToAnonymize.FirstOrDefault(t => t.TmPath.Equals(anonymizeUnits.TmPath));
                        if (anonymizeTu != null)
                        {
                            anonymizeTu.TranslationUnits.Add(tuToAnonymize);
                        }
                        else
                        {
                            var anonymizeTm = new AnonymizeTranslationMemory
                            {
                                TranslationUnits = new List <TranslationUnit>(),
                                TmPath           = anonymizeUnits.TmPath
                            };
                            anonymizeTm.TranslationUnits.Add(tuToAnonymize);
                            tusToAnonymize.Add(anonymizeTm);
                        }
                    }
                }
            }
            return(tusToAnonymize);
        }
        /// <summary>
        /// Gets corresponding tus from TMs
        /// </summary>
        /// <param name="selectedSearchResult"></param>
        /// <returns></returns>
        private List <AnonymizeTranslationMemory> GetTranslationUnitsToAnonymize(List <SourceSearchResult> selectedSearchResult)
        {
            var tusToAnonymize = new List <AnonymizeTranslationMemory>();

            foreach (var selectedResult in selectedSearchResult)
            {
                foreach (var anonymizeUnits in _anonymizeTranslationMemories)
                {
                    var sourceTranslationUnit =
                        anonymizeUnits.TranslationUnits.FirstOrDefault(n => n.SourceSegment.ToPlain().Equals(selectedResult.SourceText.TrimEnd()));
                    var targetTranslationUnit =
                        anonymizeUnits.TranslationUnits.FirstOrDefault(n => n.TargetSegment.ToPlain().Equals(selectedResult.TargetText.TrimEnd()));
                    //TranslationUnit tuToAnonymize;

                    if (sourceTranslationUnit != null || targetTranslationUnit != null)
                    {
                        // if there is an tm with the same path add translation units to that tm
                        var             anonymizeTu   = tusToAnonymize.FirstOrDefault(t => t.TmPath.Equals(anonymizeUnits.TmPath));
                        TranslationUnit tuToAnonymize = new TranslationUnit();

                        if (sourceTranslationUnit != null)
                        {
                            tuToAnonymize = sourceTranslationUnit;
                        }
                        if (targetTranslationUnit != null)
                        {
                            tuToAnonymize = targetTranslationUnit;
                        }
                        //added for select custom words functionality
                        var tranlationUnitDetails = new TranslationUnitDetails
                        {
                            TranslationUnit               = tuToAnonymize,
                            SelectedWordsDetails          = selectedResult.SelectedWordsDetails,
                            RemovedWordsFromMatches       = selectedResult.DeSelectedWordsDetails,
                            IsSourceMatch                 = selectedResult.IsSourceMatch,
                            IsTargetMatch                 = selectedResult.IsTargetMatch,
                            TargetSelectedWordsDetails    = selectedResult.TargetSelectedWordsDetails,
                            TargetRemovedWordsFromMatches = selectedResult.TargetDeSelectedWordsDetails
                        };

                        if (anonymizeTu != null)
                        {
                            anonymizeTu.TranslationUnitDetails.Add(tranlationUnitDetails);
                            anonymizeTu.TranslationUnits.Add(tuToAnonymize);
                        }
                        else
                        {
                            var anonymizeTm = new AnonymizeTranslationMemory
                            {
                                TranslationUnits       = new List <TranslationUnit>(),
                                TmPath                 = anonymizeUnits.TmPath,
                                TranslationUnitDetails = new List <TranslationUnitDetails>(),
                            };
                            anonymizeTm.TranslationUnitDetails.Add(tranlationUnitDetails);

                            anonymizeTm.TranslationUnits.Add(tuToAnonymize);
                            tusToAnonymize.Add(anonymizeTm);
                        }
                    }
                }
            }
            return(tusToAnonymize);
        }