/// <exclude /> public static IEnumerable <PackageDescription> GetFilteredAllAvailablePackages() { List <InstalledPackageInformation> installedPackageInformation = PackageManager.GetInstalledPackages().ToList(); IEnumerable <PackageDescription> descriptions = from description in PackageServerFacade.GetAllPackageDescriptions(InstallationInformationFacade.InstallationId, UserSettings.CultureInfo) where installedPackageInformation.All(f => f.Id != description.Id) select description; Dictionary <Guid, List <PackageDescription> > packageDescriptions = new Dictionary <Guid, List <PackageDescription> >(); foreach (PackageDescription packageDescription in descriptions) { if ((new Version(packageDescription.MinCompositeVersionSupported) <= RuntimeInformation.ProductVersion) && (new Version(packageDescription.MaxCompositeVersionSupported) >= RuntimeInformation.ProductVersion)) { List <PackageDescription> decs; if (!packageDescriptions.TryGetValue(packageDescription.Id, out decs)) { decs = new List <PackageDescription>(); packageDescriptions.Add(packageDescription.Id, decs); } decs.Add(packageDescription); } } foreach (var kvp in packageDescriptions) { if (kvp.Value.Count > 1) { kvp.Value.Sort(delegate(PackageDescription x, PackageDescription y) { Version xVersion = new Version(x.PackageVersion); Version yVersion = new Version(y.PackageVersion); return(xVersion.CompareTo(yVersion)); }); } yield return(kvp.Value.Last()); } }
/// <exclude /> public static IEnumerable <PackageDescription> GetAllAvailablePackages() { return(PackageServerFacade.GetAllPackageDescriptions(InstallationInformationFacade.InstallationId, UserSettings.CultureInfo)); }