protected override IRemoteNuget find(Dependency query) { SemanticVersion version; if (!SemanticVersion.TryParse(query.Version, out version)) { RippleLog.Debug("Could not find exact for " + query); return null; } var versionSpec = new VersionSpec(version); var package = _repository.FindPackages(query.Name, versionSpec, query.DetermineStability(_stability) == NugetStability.Anything, true).SingleOrDefault(); if (package == null) { return null; } return new RemoteNuget(package); }
protected override IRemoteNuget find(Dependency query) { throwIfNeeded(query); if (query.IsFloat() || query.Version.IsEmpty()) { return Nugets .OrderByDescending(x => x.Version) .FirstOrDefault(x => query.MatchesName(x.Name)); } var version = SemanticVersion.Parse(query.Version); var matching = Nugets.Where(x => query.MatchesName(x.Name)); if (query.DetermineStability(_feed.Stability) == NugetStability.ReleasedOnly) { return matching.FirstOrDefault(x => x.Version.SpecialVersion.IsEmpty() && x.Version.Equals(version)); } return matching.FirstOrDefault(x => x.Version.Version.Equals(version.Version)); }
protected override IRemoteNuget findLatest(Dependency query) { RippleLog.Debug("Searching for {0} from {1}".ToFormat(query, _url)); var candidates = _repository.Search(query.Name, query.DetermineStability(_stability) == NugetStability.Anything) .Where(x => query.Name == x.Id).OrderBy(x => x.Id).ToList(); var candidate = candidates.FirstOrDefault(x => x.IsAbsoluteLatestVersion) ?? candidates.FirstOrDefault(x => x.IsLatestVersion); if (candidate == null) { // If both absolute and latest are false, then we order in descending order (by version) and take the top candidate = candidates .OrderByDescending(x => x.Version) .FirstOrDefault(); if (candidate == null) return null; } return new RemoteNuget(candidate); }
protected override IRemoteNuget findLatest(Dependency query) { RippleLog.Debug("Searching for {0} from {1}".ToFormat(query, _url)); var candidates = repository.Search(query.Name, query.DetermineStability(Stability) == NugetStability.Anything) .Where(x => query.Name == x.Id).OrderBy(x => x.Id).ToList(); return candidates.LatestNuget(query.VersionSpec); }
protected override IRemoteNuget findLatest(Dependency query) { RippleLog.Debug("Searching for latest of {0} in {1}".ToFormat(query, _directory)); var nugets = files .Where(x => query.MatchesName(x.Name) && (!x.IsPreRelease || (x.IsPreRelease && query.DetermineStability(_stability) == NugetStability.Anything))) .ToList(); var nuget = nugets .OrderByDescending(x => x.Version) .FirstOrDefault(); if (nuget == null) { return null; } return new FileSystemNuget(nuget); }