public static string GetSKU()
        {
            DTE    dte = ServiceLocator.GetInstance <DTE>();
            string sku = dte.Edition;

            if (sku.Equals("Ultimate", StringComparison.OrdinalIgnoreCase) ||
                sku.Equals("Premium", StringComparison.OrdinalIgnoreCase) ||
                sku.Equals("Professional", StringComparison.OrdinalIgnoreCase))
            {
                sku = "Pro";
            }

            return(sku);
        }
        public static IVsHierarchy ToVsHierarchy(this Project project)
        {
            IVsHierarchy hierarchy;

            // Get the vs solution
            IVsSolution solution = ServiceLocator.GetInstance <IVsSolution>();
            int         hr       = solution.GetProjectOfUniqueName(project.GetUniqueName(), out hierarchy);

            if (hr != VsConstants.S_OK)
            {
                Marshal.ThrowExceptionForHR(hr);
            }

            return(hierarchy);
        }
Exemple #3
0
        public void RestorePackages(Project project)
        {
            string packageReferenceFileFullPath;
            Tuple <string, string> packageReferenceFiles = VsUtility.GetPackageReferenceFileFullPaths(project);

            if (File.Exists(packageReferenceFiles.Item1))
            {
                packageReferenceFileFullPath = packageReferenceFiles.Item1;
            }
            else if (File.Exists(packageReferenceFiles.Item2))
            {
                packageReferenceFileFullPath = packageReferenceFiles.Item2;
            }
            else
            {
                return;
            }

            var packageReferenceFile = new PackageReferenceFile(packageReferenceFileFullPath);
            var packages             = packageReferenceFile.GetPackageReferences().ToList();

            if (packages.Count == 0)
            {
                return;
            }

            var repoSettings = ServiceLocator.GetInstance <IRepositorySettings>();
            var fileSystem   = new PhysicalFileSystem(repoSettings.RepositoryPath);
            var activePackageSourceRepository = ServiceLocator.GetInstance <IPackageRepository>();
            var repository = new AggregateRepository(new[] { MachineCache.Default, activePackageSourceRepository });
            IVsPackageManagerFactory packageManagerFactory = ServiceLocator.GetInstance <IVsPackageManagerFactory>();
            var packageManager = packageManagerFactory.CreatePackageManager(repository, useFallbackForDependencies: false);

            foreach (var package in packages)
            {
                if (IsPackageInstalled(fileSystem, package.Id, package.Version))
                {
                    continue;
                }

                using (packageManager.SourceRepository.StartOperation(RepositoryOperationNames.Restore, package.Id, package.Version.ToString()))
                {
                    var resolvedPackage = PackageHelper.ResolvePackage(
                        packageManager.SourceRepository, package.Id, package.Version);
                    NuGet.Common.PackageExtractor.InstallPackage(packageManager, resolvedPackage);
                }
            }
        }
        public static bool?ShowQueryMessage(string message, string title, bool showCancelButton)
        {
            int result = VsShellUtilities.ShowMessageBox(
                ServiceLocator.GetInstance <IServiceProvider>(),
                message,
                title,
                OLEMSGICON.OLEMSGICON_QUERY,
                showCancelButton ? OLEMSGBUTTON.OLEMSGBUTTON_YESNOCANCEL : OLEMSGBUTTON.OLEMSGBUTTON_YESNO,
                OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);

            if (result == NativeMethods.IDCANCEL)
            {
                return(null);
            }
            return(result == NativeMethods.IDYES);
        }
        public static IVsHierarchy ToVsHierarchy(EnvDTE.Project project)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            IVsHierarchy hierarchy;

            // Get the vs solution
            var solution = ServiceLocator.GetInstance <IVsSolution>();
            var hr       = solution.GetProjectOfUniqueName(EnvDTEProjectInfoUtility.GetUniqueName(project), out hierarchy);

            if (hr != VSConstants.S_OK)
            {
                Marshal.ThrowExceptionForHR(hr);
            }

            return(hierarchy);
        }
Exemple #6
0
        public static void CollapseAllNodes(ISolutionManager solutionManager, IDictionary <string, ISet <VsHierarchyItem> > ignoreNodes)
        {
            var dte      = ServiceLocator.GetInstance <DTE>();
            var projects = dte.Solution.Projects;

            // this operation needs to execute on UI thread
            ThreadHelper.Generic.Invoke(() =>
            {
                foreach (Project project in projects)
                {
                    ISet <VsHierarchyItem> expandedNodes;
                    if (ignoreNodes.TryGetValue(GetUniqueName(project), out expandedNodes) &&
                        expandedNodes != null)
                    {
                        CollapseProjectHierarchyItems(project, expandedNodes);
                    }
                }
            });
        }
        public static async Task CollapseAllNodesAsync(ISolutionManager solutionManager, IDictionary <string, ISet <VsHierarchyItem> > ignoreNodes)
        {
            // this operation needs to execute on UI thread
            await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            var dte      = ServiceLocator.GetInstance <EnvDTE.DTE>();
            var projects = dte.Solution.Projects;

            foreach (var project in projects.Cast <EnvDTE.Project>())
            {
                ISet <VsHierarchyItem> expandedNodes;
                if (ignoreNodes.TryGetValue(EnvDTEProjectInfoUtility.GetUniqueName(project), out expandedNodes)
                    &&
                    expandedNodes != null)
                {
                    CollapseProjectHierarchyItems(project, expandedNodes);
                }
            }
        }
Exemple #8
0
        public static async Task CollapseAllNodesAsync(IDictionary <string, ISet <VsHierarchyItem> > ignoreNodes)
        {
            Verify.ArgumentIsNotNull(ignoreNodes, nameof(ignoreNodes));

            await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            var dte      = ServiceLocator.GetInstance <EnvDTE.DTE>();
            var projects = dte.Solution.Projects;

            foreach (var project in projects.Cast <EnvDTE.Project>())
            {
                ISet <VsHierarchyItem> expandedNodes;
                if (ignoreNodes.TryGetValue(project.GetUniqueName(), out expandedNodes)
                    &&
                    expandedNodes != null)
                {
                    CollapseProjectHierarchyItems(project, expandedNodes);
                }
            }
        }
 public PackageRestoreManager(
     ISolutionManager solutionManager,
     IFileSystemProvider fileSystemProvider,
     IPackageRepositoryFactory packageRepositoryFactory,
     IVsPackageManagerFactory packageManagerFactory,
     IVsPackageSourceProvider packageSourceProvider,
     IVsPackageInstallerEvents packageInstallerEvents,
     ISettings settings) :
     this(ServiceLocator.GetInstance <DTE>(),
          solutionManager,
          fileSystemProvider,
          packageRepositoryFactory,
          packageSourceProvider,
          packageManagerFactory,
          packageInstallerEvents,
          MachineCache.Default,
          ServiceLocator.GetGlobalService <SVsThreadedWaitDialogFactory, IVsThreadedWaitDialogFactory>(),
          settings)
 {
 }
Exemple #10
0
        public IConsole CreateOutputConsole(bool requirePowerShellHost)
        {
            if (_console == null)
            {
                var serviceProvider = ServiceLocator.GetInstance <IServiceProvider>();
                var outputWindow    = (IVsOutputWindow)serviceProvider.GetService(typeof(SVsOutputWindow));
                Debug.Assert(outputWindow != null);

                _console = new OutputConsole(outputWindow);
            }

            // only instantiate the PS host if necessary (e.g. when package contains PS script files)
            if (requirePowerShellHost && _console.Host == null)
            {
                var hostProvider = GetPowerShellHostProvider();
                _console.Host = hostProvider.CreateHost(@async: false);
            }

            return(_console);
        }
        public static async TaskExpandedNodes GetAllExpandedNodesAsync(ISolutionManager solutionManager)
        {
            // this operation needs to execute on UI thread
            await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            var dte      = ServiceLocator.GetInstance <EnvDTE.DTE>();
            var projects = dte.Solution.Projects;

            var results = new Dictionary <string, ISet <VsHierarchyItem> >(StringComparer.OrdinalIgnoreCase);

            foreach (var project in projects.Cast <EnvDTE.Project>())
            {
                var expandedNodes =
                    GetExpandedProjectHierarchyItems(project);
                Debug.Assert(!results.ContainsKey(EnvDTEProjectInfoUtility.GetUniqueName(project)));
                results[EnvDTEProjectInfoUtility.GetUniqueName(project)] =
                    new HashSet <VsHierarchyItem>(expandedNodes);
            }
            return(results);
        }
Exemple #12
0
        public static IDictionary <string, ISet <VsHierarchyItem> > GetAllExpandedNodes(ISolutionManager solutionManager)
        {
            var dte      = ServiceLocator.GetInstance <DTE>();
            var projects = dte.Solution.Projects;

            // this operation needs to execute on UI thread
            return(ThreadHelper.Generic.Invoke(() =>
            {
                var results = new Dictionary <string, ISet <VsHierarchyItem> >(StringComparer.OrdinalIgnoreCase);
                foreach (Project project in projects)
                {
                    ICollection <VsHierarchyItem> expandedNodes =
                        GetExpandedProjectHierarchyItems(project);
                    Debug.Assert(!results.ContainsKey(GetUniqueName(project)));
                    results[GetUniqueName(project)] =
                        new HashSet <VsHierarchyItem>(expandedNodes);
                }
                return results;
            }
                                               ));
        }
        /// <summary>
        /// DO NOT delete this. This method is only called from PowerShell functional test.
        /// </summary>
        public static void RemoveProject(string projectName)
        {
            if (String.IsNullOrEmpty(projectName))
            {
                throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "projectName");
            }

            var solutionManager = (ISolutionManager)ServiceLocator.GetInstance <ISolutionManager>();

            if (solutionManager != null)
            {
                var project = solutionManager.GetProject(projectName);
                if (project == null)
                {
                    throw new InvalidOperationException();
                }

                var dte = ServiceLocator.GetGlobalService <SDTE, DTE>();
                dte.Solution.Remove(project);
            }
        }
Exemple #14
0
        /// <summary>
        /// Finds the NuGetProject from a DTE project
        /// </summary>
        public static NuGetProject GetProject(ISolutionManager solutionManager, Project project, VSAPIProjectContext projectContext = null)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solution");
            }

            var          projectSafeName = EnvDTEProjectUtility.GetCustomUniqueName(project);
            NuGetProject nuGetProject    = solutionManager.GetNuGetProject(projectSafeName);

            var settings = ServiceLocator.GetInstance <ISettings>();

            // if the project does not exist in the solution (this is true for new templates) create it manually
            if (nuGetProject == null)
            {
                VSNuGetProjectFactory factory = new VSNuGetProjectFactory(() => PackagesFolderPathUtility.GetPackagesFolderPath(solutionManager, settings));
                nuGetProject = factory.CreateNuGetProject(project, projectContext);
            }

            return(nuGetProject);
        }
 public VsFileSystemProvider()
     : this(ServiceLocator.GetInstance <DTE>(),
            ServiceLocator.GetGlobalService <SComponentModel, IComponentModel>())
 {
 }
Exemple #16
0
 public RecentPackagesRepository(IPackageRepositoryFactory repositoryFactory,
                                 IPersistencePackageSettingsManager settingsManager)
     : this(ServiceLocator.GetInstance <DTE>(), repositoryFactory, ServiceLocator.GetInstance <IPackageSourceProvider>(), settingsManager)
 {
 }
Exemple #17
0
 public SolutionManager()
     : this(ServiceLocator.GetInstance <DTE>(), ServiceLocator.GetGlobalService <SVsSolution, IVsSolution>())
 {
 }
Exemple #18
0
 public SolutionManager()
     : this(ServiceLocator.GetInstance <DTE>())
 {
 }
 /// <summary>
 /// Gets the VsSettings singleton object.
 /// </summary>
 /// <returns>The VsSettings object in the system.</returns>
 public static ISettings GetVsSettings()
 {
     return(ServiceLocator.GetInstance <ISettings>());
 }
 // IMPORTANT: do NOT remove this method. It is used by functional tests.
 public static IEnumerable <PackageSource> GetEnabledPackageSourcesWithAggregate()
 {
     return(GetEnabledPackageSourcesWithAggregate(ServiceLocator.GetInstance <IVsPackageSourceProvider>()));
 }
Exemple #21
0
 public VsProductUpdateSettings() :
     this(ServiceLocator.GetInstance <IServiceProvider>())
 {
 }
Exemple #22
0
 public ProductUpdateService() :
     this(ServiceLocator.GetGlobalService <SVsUIShell, IVsUIShell>(),
          ServiceLocator.GetInstance <IProductUpdateSettings>())
 {
 }
Exemple #23
0
 public IVsPackageManager CreatePackageManager()
 {
     return(CreatePackageManager(ServiceLocator.GetInstance <IPackageRepository>()));
 }
Exemple #24
0
 public VsProgressReporter()
     : this(ServiceLocator.GetInstance <IServiceProvider>())
 {
 }
 public VsPersistencePackageSettingsManager()
     : this(ServiceLocator.GetInstance <IServiceProvider>())
 {
 }
Exemple #26
0
 public WindowSettingsManager() :
     this(ServiceLocator.GetInstance <IServiceProvider>())
 {
 }
Exemple #27
0
 private static IVsUIHierarchyWindow GetSolutionExplorerHierarchyWindow()
 {
     return(VsShellUtilities.GetUIHierarchyWindow(
                ServiceLocator.GetInstance <IServiceProvider>(),
                new Guid(VsConstants.VsWindowKindSolutionExplorer)));
 }
 public VsCommonOperations() : this(ServiceLocator.GetInstance <DTE>())
 {
 }
Exemple #29
0
 protected internal virtual IFileSystem GetConfigSettingsFileSystem(string configFolderPath)
 {
     return(new SolutionFolderFileSystem(ServiceLocator.GetInstance <DTE>().Solution, VsConstants.NuGetSolutionSettingsFolder, configFolderPath));
 }
Exemple #30
0
 /// <summary>
 /// Creates an VsPackageManagerInstance that uses the Active Repository (the repository selected in the console drop down) and uses a fallback repository for dependencies.
 /// </summary>
 public IVsPackageManager CreatePackageManager()
 {
     return(CreatePackageManager(ServiceLocator.GetInstance <IPackageRepository>(), useFallbackForDependencies: true));
 }