Beispiel #1
0
        // Returns false if user doesn't accept license agreements.
        private async Task <bool> CheckLicenseAcceptance(
            INuGetUI uiService,
            IEnumerable <PreviewResult> results,
            CancellationToken token)
        {
            // find all the packages that might need a license acceptance
            HashSet <PackageIdentity> licenseCheck = new HashSet <PackageIdentity>(PackageIdentity.Comparer);

            foreach (var result in results)
            {
                foreach (var pkg in result.Added)
                {
                    licenseCheck.Add(pkg);
                }

                foreach (var pkg in result.Updated)
                {
                    licenseCheck.Add(pkg.New);
                }
            }
            IEnumerable <UIPackageMetadata> licenseMetadata = await GetPackageMetadata(licenseCheck, token);

            // show license agreement
            if (licenseMetadata.Any(e => e.RequireLicenseAcceptance))
            {
                var licenseInfoItems = licenseMetadata
                                       .Where(p => p.RequireLicenseAcceptance)
                                       .Select(e => new PackageLicenseInfo(e.Identity.Id, e.LicenseUrl, e.Authors));
                return(uiService.PromptForLicenseAcceptance(licenseInfoItems));
            }

            return(true);
        }
        // Returns false if user doesn't accept license agreements.
        private async Task <bool> CheckLicenseAcceptanceAsync(
            INuGetUI uiService,
            IEnumerable <PreviewResult> results,
            CancellationToken token)
        {
            // find all the packages that might need a license acceptance
            var licenseCheck = new HashSet <PackageIdentity>(PackageIdentity.Comparer);

            foreach (var result in results)
            {
                foreach (var pkg in result.Added)
                {
                    licenseCheck.Add(pkg);
                }

                foreach (var pkg in result.Updated)
                {
                    licenseCheck.Add(pkg.New);
                }
            }
            var sources         = _sourceProvider.GetRepositories().Where(e => e.PackageSource.IsEnabled);
            var licenseMetadata = await GetPackageMetadataAsync(sources, licenseCheck, token);

            TelemetryUtility.StopTimer();

            // show license agreement
            if (licenseMetadata.Any(e => e.RequireLicenseAcceptance))
            {
                var licenseInfoItems = licenseMetadata
                                       .Where(p => p.RequireLicenseAcceptance)
                                       .Select(e => new PackageLicenseInfo(e.Identity.Id, e.LicenseUrl, e.Authors));
                return(uiService.PromptForLicenseAcceptance(licenseInfoItems));
            }

            return(true);
        }
        // Returns false if user doesn't accept license agreements.
        private async Task<bool> CheckLicenseAcceptance(
            INuGetUI uiService,
            IEnumerable<PreviewResult> results,
            CancellationToken token)
        {
            // find all the packages that might need a license acceptance
            HashSet<PackageIdentity> licenseCheck = new HashSet<PackageIdentity>(PackageIdentity.Comparer);
            foreach (var result in results)
            {
                foreach (var pkg in result.Added)
                {
                    licenseCheck.Add(pkg);
                }

                foreach (var pkg in result.Updated)
                {
                    licenseCheck.Add(pkg.New);
                }
            }
            IEnumerable<UIPackageMetadata> licenseMetadata = await GetPackageMetadata(licenseCheck, token);

            // show license agreement
            if (licenseMetadata.Any(e => e.RequireLicenseAcceptance))
            {
                var licenseInfoItems = licenseMetadata
                    .Where(p => p.RequireLicenseAcceptance)
                    .Select(e => new PackageLicenseInfo(e.Identity.Id, e.LicenseUrl, e.Authors));
                return uiService.PromptForLicenseAcceptance(licenseInfoItems);
            }

            return true;
        }