Пример #1
0
        protected bool ShowLicenseAgreementForAllPackages(IVsPackageManager activePackageManager, out List <PackageOperation> allOperations)
        {
            allOperations = new List <PackageOperation>();

            var installWalker = new InstallWalker(
                LocalRepository,
                activePackageManager.SourceRepository,
                _project.GetTargetFrameworkName(),
                logger: this,
                ignoreDependencies: false,
                allowPrereleaseVersions: IncludePrerelease);

            var allPackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease);

            foreach (var package in allPackages)
            {
                if (allOperations.FindIndex(
                        operation => operation.Action == PackageAction.Install &&
                        operation.Package.Id == package.Id &&
                        operation.Package.Version == package.Version) == -1)
                {
                    var operations = installWalker.ResolveOperations(package);
                    allOperations.AddRange(operations);
                }
            }

            allOperations = (List <PackageOperation>)allOperations.Reduce();
            return(ShowLicenseAgreement(activePackageManager, allOperations));
        }
Пример #2
0
        // Resolve actions to update all packages in all projects.
        private IEnumerable <Resolver.PackageAction> ResolveActionsForUpdateAll(IVsPackageManager activePackageManager)
        {
            var resolver = new ActionResolver()
            {
                Logger = this,
                AllowPrereleaseVersions = IncludePrerelease,
                DependencyVersion       = activePackageManager.DependencyVersion
            };
            var allPackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease);

            foreach (Project project in _solutionManager.GetProjects())
            {
                IProjectManager projectManager = activePackageManager.GetProjectManager(project);
                foreach (var package in allPackages)
                {
                    // Update if an older version package is installed in the project
                    var localPackge = projectManager.LocalRepository.FindPackage(package.Id);
                    if (localPackge != null && localPackge.Version < package.Version)
                    {
                        resolver.AddOperation(PackageAction.Install, package, projectManager);
                    }
                }
            }
            var actions = resolver.ResolveActions();

            return(actions);
        }
Пример #3
0
        protected bool ShowLicenseAgreementForAllPackages(IVsPackageManager activePackageManager, out IList <PackageOperation> allOperations, out IList <IPackage> packagesByDependencyOrder)
        {
            allOperations = new List <PackageOperation>();
            var allPackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease);

            if (_project.SupportsINuGetProjectSystem())
            {
                packagesByDependencyOrder = allPackages.ToList();
                foreach (var package in allPackages)
                {
                    allOperations.Add(new PackageOperation(package, PackageAction.Install));
                }
            }
            else
            {
                var installWalker = new InstallWalker(
                    LocalRepository,
                    activePackageManager.SourceRepository,
                    _project.GetTargetFrameworkName(),
                    logger: this,
                    ignoreDependencies: false,
                    allowPrereleaseVersions: IncludePrerelease,
                    dependencyVersion: activePackageManager.DependencyVersion);
                allOperations = installWalker.ResolveOperations(allPackages, out packagesByDependencyOrder);
            }

            return(ShowLicenseAgreement(activePackageManager, allOperations));
        }
Пример #4
0
        protected override bool ExecuteAllCore()
        {
            if (SelectedNode == null || SelectedNode.Extensions == null || SelectedNode.Extensions.Count == 0)
            {
                return(false);
            }

            ShowProgressWindow();

            IVsPackageManager activePackageManager = GetActivePackageManager();

            Debug.Assert(activePackageManager != null);

            IDisposable     action         = activePackageManager.SourceRepository.StartOperation(OperationName);
            IProjectManager projectManager = activePackageManager.GetProjectManager(_project);

            List <PackageOperation> allOperations;
            bool accepted = ShowLicenseAgreementForAllPackages(activePackageManager, out allOperations);

            if (!accepted)
            {
                return(false);
            }

            try
            {
                RegisterPackageOperationEvents(activePackageManager, projectManager);

                var allUpdatePackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease);

                activePackageManager.UpdatePackages(
                    projectManager,
                    allUpdatePackages,
                    allOperations,
                    updateDependencies: true,
                    allowPrereleaseVersions: IncludePrerelease,
                    logger: this);

                return(true);
            }
            finally
            {
                UnregisterPackageOperationEvents(activePackageManager, projectManager);
                action.Dispose();
            }
        }
Пример #5
0
        protected bool ShowLicenseAgreementForAllPackages(IVsPackageManager activePackageManager, out IList <PackageOperation> allOperations, out IList <IPackage> packagesByDependencyOrder)
        {
            allOperations = new List <PackageOperation>();

            var installWalker = new InstallWalker(
                LocalRepository,
                activePackageManager.SourceRepository,
                _project.GetTargetFrameworkName(),
                logger: this,
                ignoreDependencies: false,
                allowPrereleaseVersions: IncludePrerelease);

            var allPackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease);

            allOperations = installWalker.ResolveOperations(allPackages, out packagesByDependencyOrder);
            return(ShowLicenseAgreement(activePackageManager, allOperations));
        }
Пример #6
0
        /*
         * protected override void ExecuteCommand(IProjectManager projectManager, PackageItem item, IVsPackageManager activePackageManager, IList<PackageOperation> operations)
         * {
         *  activePackageManager.UpdatePackages(
         *      projectManager,
         *      new[] { item.PackageIdentity },
         *      operations,
         *      updateDependencies: true,
         *      allowPrereleaseVersions: IncludePrerelease,
         *      logger: this);
         * } */

        private IEnumerable <Resolver.PackageAction> ResolveActionsForUpdateAll(IVsPackageManager activePackageManager, IProjectManager projectManager)
        {
            var resolver = new ActionResolver()
            {
                Logger = this,
                AllowPrereleaseVersions = IncludePrerelease,
                DependencyVersion       = activePackageManager.DependencyVersion
            };
            var allPackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease);

            foreach (var package in allPackages)
            {
                resolver.AddOperation(PackageAction.Install, package, projectManager);
            }
            var actions = resolver.ResolveActions();

            return(actions);
        }
Пример #7
0
        protected bool ShowLicenseAgreementForAllPackages(IVsPackageManager activePackageManager)
        {
            var allOperations = new List <PackageOperation>();

            var allPackages = SelectedNode.GetPackages(String.Empty, IncludePrerelease).ToList();

            foreach (var package in allPackages)
            {
                var installWalker = new InstallWalker(
                    LocalRepository,
                    activePackageManager.SourceRepository,
                    _project.GetTargetFrameworkName(),
                    logger: this,
                    ignoreDependencies: false,
                    allowPrereleaseVersions: IncludePrerelease);

                var operations = installWalker.ResolveOperations(package);
                allOperations.AddRange(operations);
            }

            return(ShowLicenseAgreement(activePackageManager, allOperations.Reduce()));
        }