private void OnFileSaved(object sender, TextDocumentFileActionEventArgs e) { var textDocument = sender as ITextDocument; if (e.FileActionType == FileActionTypes.ContentSavedToDisk && textDocument != null) { Task.Run(async() => { try { Manifest newManifest = Manifest.FromJson(textDocument.TextBuffer.CurrentSnapshot.GetText(), _dependencies); await RemoveFilesAsync(newManifest).ConfigureAwait(false); _manifest = newManifest; await LibraryHelpers.RestoreAsync(textDocument.FilePath, _manifest, CancellationToken.None).ConfigureAwait(false); Telemetry.TrackOperation("restoresave"); } catch (Exception ex) { string textMessage = string.Concat(Environment.NewLine, LibraryManager.Resources.Text.RestoreHasErrors, Environment.NewLine); Logger.LogEvent(textMessage, LogLevel.Task); Logger.LogEvent(ex.ToString(), LogLevel.Error); Telemetry.TrackException("restoresavefailed", ex); } }); } }
private async void InstallPackageAsync() { try { ILibrary selectedPackage = SelectedPackage; _isInstalling = true; InstallPackageCommand.CanExecute(null); Manifest manifest = await Manifest.FromFileAsync(_configFileName, _deps, CancellationToken.None).ConfigureAwait(false); string targetPath = _targetPath; if (!string.IsNullOrEmpty(_configFileName)) { Uri configContainerUri = new Uri(_configFileName, UriKind.Absolute); Uri targetUri = new Uri(targetPath, UriKind.Absolute); targetPath = configContainerUri.MakeRelativeUri(targetUri).ToString(); } manifest.AddLibrary(new LibraryInstallationState { LibraryId = PackageId, ProviderId = selectedPackage.ProviderId, DestinationPath = targetPath, Files = SelectedFiles.ToList() }); await manifest.SaveAsync(_configFileName, CancellationToken.None).ConfigureAwait(false); EnvDTE.Project project = VsHelpers.DTE.SelectedItems.Item(1)?.ProjectItem?.ContainingProject; project?.AddFileToProject(_configFileName); await LibraryHelpers.RestoreAsync(_configFileName).ConfigureAwait(false); _dispatcher.Invoke(() => { _closeDialog(true); }); } catch { } }
private void OnFileSaved(object sender, TextDocumentFileActionEventArgs e) { if (e.FileActionType == FileActionTypes.ContentSavedToDisk) { Task.Run(async() => { try { Manifest newManifest = await Manifest.FromFileAsync(e.FilePath, _dependencies, CancellationToken.None).ConfigureAwait(false); await RemoveFilesAsync(newManifest).ConfigureAwait(false); _manifest = newManifest; await LibraryHelpers.RestoreAsync(e.FilePath, CancellationToken.None).ConfigureAwait(false); Telemetry.TrackOperation("restoresave"); } catch (Exception ex) { Logger.LogEvent(ex.ToString(), LogLevel.Error); Telemetry.TrackException("restoresavefailed", ex); } }); } }