public bool TryGetPackageVersion(RegistryPackageType type, string name, RegistryVersionString version, out RegistryPackageVersionContext context) { var package = Get(type)?.FirstOrDefault(p => p.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)); if (package == null) { context = null; return(false); } var packageVersion = RegistryVersionString.IsEmpty(version) ? package.GetLatestVersion() : package.Versions.FirstOrDefault(v => v.Version.Equals(version)); if (packageVersion == null) { context = null; return(false); } context = new RegistryPackageVersionContext(this, package, packageVersion); return(true); }
public RegistryPackageVersion GetLatestVersionCompatibleWith(RegistryVersionString version) { return(Versions?.FirstOrDefault(v => v.Version.Major == version.Major)); }