Пример #1
0
        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);
            }
        }
Пример #2
0
 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);
         }
     }
 }