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);
        }
Exemple #2
0
        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;
            });
        }
Exemple #7
0
        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);
        }