public async Task PerformDocumentConversionAsync <TLanguageConversion>(string documentFilePath, Span selected) where TLanguageConversion : ILanguageConversion, new() { var conversionResult = await _joinableTaskFactory.RunAsync(async() => { var result = await ConvertDocumentUnhandledAsync <TLanguageConversion>(documentFilePath, selected); await WriteConvertedFilesAndShowSummaryAsync(new[] { result }); return(result); }); if ((await GetOptions()).CopyResultToClipboardForSingleDocument) { Clipboard.SetText(conversionResult.ConvertedCode ?? conversionResult.GetExceptionsAsString()); await _outputWindow.WriteToOutputWindowAsync(Environment.NewLine + "Conversion result copied to clipboard."); await VisualStudioInteraction.ShowMessageBoxAsync(_serviceProvider, "Conversion result copied to clipboard.", conversionResult.GetExceptionsAsString(), false); } }
public async Task ConvertProjectsAsync <TLanguageConversion>(IReadOnlyCollection <Project> selectedProjects, CancellationToken cancellationToken) where TLanguageConversion : ILanguageConversion, new() { try { await _joinableTaskFactory.RunAsync(async() => { var convertedFiles = ConvertProjectUnhandled <TLanguageConversion>(selectedProjects, cancellationToken); await WriteConvertedFilesAndShowSummaryAsync(convertedFiles); }); } catch (OperationCanceledException) { if (!_packageCancellation.CancelAll.IsCancellationRequested) { await _outputWindow.WriteToOutputWindowAsync(Environment.NewLine + "Previous conversion cancelled", forceShow : true); } } }