public async Task ShowDialog(ExtensionFileModel model) { var extensions = model.Extensions.SelectMany(e => e.Value); InstallerDialog dialog = new InstallerDialog(extensions); dialog.Title = "Solution specific extensions"; dialog.NeverShowAgainForSolution = Settings.IsSolutionIgnored(); var dte = _serviceProvider.GetService(typeof(DTE)) as DTE2; var hwnd = new IntPtr(dte.MainWindow.HWnd); System.Windows.Window window = (System.Windows.Window)HwndSource.FromHwnd(hwnd).RootVisual; dialog.Owner = window; var result = dialog.ShowDialog(); Settings.IgnoreSolution(dialog.NeverShowAgainForSolution); if (!result.HasValue || !result.Value) { return; } ExtensionInstaller installer = new ExtensionInstaller(_serviceProvider, _repository, _manager); await installer.InstallExtensions(dialog.SelectedExtensions); }
private async System.Threading.Tasks.Task ShowDialog(object sender, EventArgs e) { ExtensionFileModel fileModel = await SolutionHandler.Instance.GetCurrentFileModel(); if (fileModel != null) { await ExtensionInstalledChecker.Instance.ShowDialog(fileModel); } }
public async Task <ExtensionFileModel> GetCurrentFileModel() { if (_dte.Solution == null || string.IsNullOrEmpty(_dte.Solution.FullName)) { return(null); } string configPath = Path.ChangeExtension(_dte.Solution.FullName, Constants.EXTENSION); return(await ExtensionFileModel.FromFile(configPath)); }
private async void OnSolutionOpened() { if (ExtensionFileFound != null) { ExtensionFileModel model = await GetCurrentFileModel(); if (model != null) { ExtensionFileFound(this, new ExtensionFileEventArgs(model)); } } }
public async Task ShowDialog(ExtensionFileModel model) { var extensions = model.Extensions.SelectMany(e => e.Value); InstallerDialog dialog = new InstallerDialog(extensions); dialog.Title = "Solution specific extensions"; dialog.NeverShowAgainForSolution = Settings.IsSolutionIgnored(); var result = dialog.ShowDialog(); Settings.IgnoreSolution(dialog.NeverShowAgainForSolution); if (!result.HasValue || !result.Value) return; ExtensionInstaller installer = new ExtensionInstaller(_repository, _manager); await installer.InstallExtensions(dialog.SelectedExtensions); }
private async Task<bool> HasMissingExtensions(ExtensionFileModel model) { return await Task.Run(() => { List<IExtensionModel> models = new List<IExtensionModel>(); var installedExtensions = GetInstalledExtensions(); var extensions = model.Extensions.Where(cat => cat.Key == "mandatory").SelectMany(e => e.Value); foreach (var extension in extensions) { var installed = installedExtensions.FirstOrDefault(ins => ins.Header.Identifier.Equals(extension.ProductId, StringComparison.OrdinalIgnoreCase)); if (installed == null) return true; } return false; }); }
public async Task ShowDialog(ExtensionFileModel model) { var extensions = model.Extensions.SelectMany(e => e.Value); InstallerDialog dialog = new InstallerDialog(extensions); dialog.Title = "Solution specific extensions"; dialog.NeverShowAgainForSolution = Settings.IsSolutionIgnored(); var result = dialog.ShowDialog(); Settings.IgnoreSolution(dialog.NeverShowAgainForSolution); if (!result.HasValue || !result.Value) { return; } ExtensionInstaller installer = new ExtensionInstaller(_repository, _manager); await installer.InstallExtensions(dialog.SelectedExtensions); }
private async Task <bool> HasMissingExtensions(ExtensionFileModel model) { return(await Task.Run(() => { List <IExtensionModel> models = new List <IExtensionModel>(); var installedExtensions = GetInstalledExtensions(); var extensions = model.Extensions.Where(cat => cat.Key == "mandatory").SelectMany(e => e.Value); foreach (var extension in extensions) { var installed = installedExtensions.FirstOrDefault(ins => ins.Header.Identifier.Equals(extension.ProductId, StringComparison.OrdinalIgnoreCase)); if (installed == null) { return true; } } return false; })); }
public async Task ShowDialog(ExtensionFileModel model) { var extensions = model.Extensions.SelectMany(e => e.Value); InstallerDialog dialog = new InstallerDialog(extensions); dialog.Title = "Solution specific extensions"; dialog.NeverShowAgainForSolution = Settings.IsSolutionIgnored(); var dte = _serviceProvider.GetService(typeof(DTE)) as DTE2; var hwnd = new IntPtr(dte.MainWindow.HWnd); System.Windows.Window window = (System.Windows.Window)HwndSource.FromHwnd(hwnd).RootVisual; dialog.Owner = window; var result = dialog.ShowDialog(); Settings.IgnoreSolution(dialog.NeverShowAgainForSolution); if (!result.HasValue || !result.Value) return; ExtensionInstaller installer = new ExtensionInstaller(_serviceProvider, _repository, _manager); await installer.InstallExtensions(dialog.SelectedExtensions); }