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); } }
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; } }