Ejemplo n.º 1
0
        protected Dictionary <VsProject, IEnumerable <JObject> > GetPackageUpdatesFromRemoteSource(string filter, bool allowPrerelease, int skip, int take, bool allVersions)
        {
            IEnumerable <VsProject> targets = GetProjects();
            Dictionary <VsProject, IEnumerable <JObject> > packageUpdates = new Dictionary <VsProject, IEnumerable <JObject> >();

            foreach (VsProject project in targets)
            {
                Task <IEnumerable <JObject> > task = project.InstalledPackages.GetAllInstalledPackagesAndMetadata();
                IEnumerable <JObject>         installedJObjects = task.Result;
                List <JObject> filteredUpdates = new List <JObject>();

                foreach (JObject jObject in installedJObjects)
                {
                    // Find packages update
                    List <JObject> updates         = PowerShellPackage.GetLastestJObjectsForPackage(ActiveSourceRepository, jObject, project, allowPrerelease, skip, take, allVersions);
                    NuGetVersion   originalVersion = PowerShellPackage.GetNuGetVersionFromString(jObject.Value <string>(Properties.Version));

                    if (!string.IsNullOrEmpty(filter))
                    {
                        updates = updates.Where(p => p.Value <string>(Properties.PackageId).StartsWith(filter, StringComparison.OrdinalIgnoreCase)).ToList();
                    }

                    filteredUpdates.AddRange(updates);
                }
                packageUpdates.Add(project, filteredUpdates);
            }
            return(packageUpdates);
        }