public void Publish(string filePath) { NuGet.Packaging.Core.PackageIdentity packageIdentity; using (var stream = File.OpenRead(filePath)) packageIdentity = new NuGet.Packaging.PackageArchiveReader(stream, false).NuspecReader.GetIdentity(); var packageSearch = _sourceRepository.GetResource <FindPackageByIdResource>(); var versions = packageSearch.GetAllVersionsAsync(packageIdentity.Id, NullSourceCacheContext.Instance, NullLogger.Instance, CancellationToken.None).Result; var packageUpdate = _sourceRepository.GetResource <PackageUpdateResource>(); var comparer = new VersionComparerExtended(VersionComparer.Pundit); foreach (var version in versions) { if (comparer.Equals(packageIdentity.Version, version)) { packageUpdate.Delete(packageIdentity.Id, version.ToString(), endpoint => GetApiKey(), confirm => true, true, NullLogger.Instance).Wait(); } } packageUpdate.Push(filePath, null, (int)TimeOut.TotalSeconds, true, endpoint => GetApiKey(), symbolsEndpoint => null, true, NullLogger.Instance).Wait(); }
public void Compare_VersionRelease_Test(string version1, string version2, int expected) { var v1 = NuGet.Versioning.NuGetVersion.Parse(version1); var v2 = NuGet.Versioning.NuGetVersion.Parse(version2); var comparer = new VersionComparerExtended(VersionComparer.VersionRelease); var result = comparer.Compare(v1, v2); var resultInverse = comparer.Compare(v2, v1); if (expected == 0) { Assert.Equal(0, result); Assert.Equal(0, resultInverse); } else if (expected < 0) { Assert.InRange(result, int.MinValue, -1); Assert.InRange(resultInverse, 1, int.MaxValue); } else { Assert.InRange(result, 1, int.MaxValue); Assert.InRange(resultInverse, int.MinValue, -1); } }