private async Task Process(TmExporter tmExporter, TmImporter tmImporter, ModelBuilder modelBuilder, FragmentAligner fragmentAligner) { try { tmExporter.OnProgressChanged += tmExporter_OnProgressChanged; tmImporter.OnProgressChanged += tmImporter_OnProgressChanged; modelBuilder.OnProgressChanged += modelBuilder_OnProgressChanged; fragmentAligner.OnProgressChanged += fragmentAligner_OnProgressChanged; var exportFullPath = await tmExporter.Export(); await tmImporter.Import(exportFullPath); File.Delete(exportFullPath); await modelBuilder.BuildTranslationModel(); await fragmentAligner.AlignTranslationUnits(); } finally { tmExporter.OnProgressChanged -= tmExporter_OnProgressChanged; tmImporter.OnProgressChanged -= tmImporter_OnProgressChanged; modelBuilder.OnProgressChanged -= modelBuilder_OnProgressChanged; fragmentAligner.OnProgressChanged -= fragmentAligner_OnProgressChanged; } }
private async void Process( TmExporter tmExporter, TmImporter tmImporter, ModelBuilder modelBuilder, FragmentAligner fragmentAligner, BackgroundWorker bw) { try { var exportFullPath = await tmExporter.Export(); await tmImporter.Import(exportFullPath); File.Delete(exportFullPath); modelBuilder.BuildTranslationModel(); if (!bw.CancellationPending) { fragmentAligner.AlignTranslationUnits(); } else { bw.ReportProgress(100, ""); } } catch (Exception e) { throw new Exception(e.Message); } }
public void Uplift(TranslationMemoryInfo tm, BackgroundWorker bw) { var originalTmFilePath = ProcessorUtil.RenameOriginalTm(tm.Name, tm.FilePath); var upliftTmFilePath = ProcessorUtil.GetOutputTmFullPath(tm.Name, tm.FilePath); _reindexStatus.AppendLine(string.Format("Start uplift {0} translation memory", tm.Name)); bw.ReportProgress(0, _reindexStatus.ToString()); File.Copy(originalTmFilePath, upliftTmFilePath, true); var tmOut = new FileBasedTranslationMemory(upliftTmFilePath); tmOut.FGASupport = FGASupport.Automatic; tmOut.Save(); var tmExporter = new TmExporter(tmOut); var tmIn = new FileBasedTranslationMemory(tm.FilePath); var tmImporter = new TmImporter(tmIn); var modelBuilder = new ModelBuilder(tmOut); var fragmentAligner = new FragmentAligner(tmOut); if (tmIn.FGASupport != FGASupport.NonAutomatic) { Process(modelBuilder, fragmentAligner, bw); } else { Process(tmExporter, tmImporter, modelBuilder, fragmentAligner, bw); } if (!bw.CancellationPending) { ProcessorUtil.UpdateTranslationMemory(tmOut); _reindexStatus.AppendLine(string.Format("Finish uplift {0} translation memory", tm.Name)); bw.ReportProgress(0, _reindexStatus.ToString()); } else { bw.ReportProgress(100, ""); } }
public Task Run() { var tmExporter = new TmExporter(FileBasedTmIn, TotalUnits); var tmImporter = new TmImporter(FileBasedTmOut, TotalUnits); var modelBuilder = new ModelBuilder(FileBasedTmOut); var fragmentAligner = new FragmentAligner(FileBasedTmOut, QuickAlign); if (FileBasedTmIn.FGASupport != FGASupport.Off) { return(Process(modelBuilder, fragmentAligner)); } else { return(Process(tmExporter, tmImporter, modelBuilder, fragmentAligner)); } }