public SearchResults[] SearchTranslationUnitsMasked(SearchSettings settings, TranslationUnit[] translationUnits, bool[] mask) { var noOfResults = mask.Length; List <SearchResults> results = new List <SearchResults>(); List <PreTranslateSegment> preTranslateList = new List <PreTranslateSegment>(); // plugin is called from pre-translate batch task // we receive the data in chunk of 10 segments if (translationUnits.Length > 2) { var i = 0; foreach (var tu in translationUnits) { if (mask == null || mask[i]) { var preTranslate = new PreTranslateSegment { SearchSettings = settings, TranslationUnit = tu }; preTranslateList.Add(preTranslate); } else { results.Add(null); } i++; } if (preTranslateList.Count > 0) { // Create temp file with translations var translatedSegments = PrepareTempData(preTranslateList).Result; var preTranslateSearchResults = GetPreTranslationSearchResults(translatedSegments); results.AddRange(preTranslateSearchResults); } } else { var i = 0; foreach (var tu in translationUnits) { if (mask == null || mask[i]) { var result = SearchTranslationUnit(settings, tu); results.Add(result); } else { results.Add(null); } i++; } } return(results.ToArray()); }
public SearchResults[] SearchTranslationUnitsMasked(SearchSettings settings, TranslationUnit[] translationUnits, bool[] mask) { // bug LG-15128 where mask parameters are true for both CM and the actual TU to be updated which cause an unnecessary call for CM segment var results = new List <SearchResults>(); var preTranslateList = new List <PreTranslateSegment>(); // plugin is called from pre-translate batch task //we receive the data in chunk of 10 segments if (translationUnits.Length > 2) { var i = 0; foreach (var tu in translationUnits) { if (mask == null || mask[i]) { var preTranslate = new PreTranslateSegment { SearchSettings = settings, TranslationUnit = tu }; preTranslateList.Add(preTranslate); } else { results.Add(null); } i++; } if (preTranslateList.Count > 0) { //Create temp file with translations var translatedSegments = PrepareTempData(preTranslateList).Result; var preTranslateSearchResults = GetPreTranslationSearchResults(translatedSegments); results.AddRange(preTranslateSearchResults); } } else { var i = 0; foreach (var tu in translationUnits) { if (mask == null || mask[i]) { var result = SearchTranslationUnit(settings, tu); results.Add(result); } else { results.Add(null); } i++; } } return(results.ToArray()); }