From 8656bce151f0f7fe61a4964ab5f680c4641e264e Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Mon, 11 Mar 2024 01:02:11 +0000 Subject: [PATCH] fixes the catalog page --- src/isnd/Data/Catalog/CatalogPage.cs | 5 +++-- .../{CatalogEntry.cs => PackageDetails.cs} | 0 src/isnd/Data/Packages/PackageVersion.cs | 3 ++- src/isnd/Services/PackageManager.cs | 16 ++++++++++++--- src/isnd/Views/PackageVersion/Details.cshtml | 1 - src/isnd/Views/Packages/Details.cshtml | 5 ++--- src/isnd/Views/Shared/_Layout.cshtml | 2 +- test/isnd.tests/UnitTestWebHost.cs | 2 +- test/isnd.tests/WebServerFixture.cs | 20 ++++++++----------- 9 files changed, 30 insertions(+), 24 deletions(-) rename src/isnd/Data/Catalog/{CatalogEntry.cs => PackageDetails.cs} (100%) diff --git a/src/isnd/Data/Catalog/CatalogPage.cs b/src/isnd/Data/Catalog/CatalogPage.cs index 51a09b7..739d20c 100644 --- a/src/isnd/Data/Catalog/CatalogPage.cs +++ b/src/isnd/Data/Catalog/CatalogPage.cs @@ -54,6 +54,7 @@ namespace isnd.Data.Catalog long commitMax = 0; foreach (var p in vitems) { + if (p.LatestCommit==null) continue; var pkg = p.ToPackage(apiBase); if (items.Contains(pkg)) continue; @@ -69,8 +70,8 @@ namespace isnd.Data.Catalog } items.Add(pkg); } - Upper = upper.ToFullString(); - Lower = lower.ToFullString(); + Upper = upper?.ToFullString() ?? lower?.ToFullString(); + Lower = lower?.ToFullString() ?? upper?.ToFullString(); } /// diff --git a/src/isnd/Data/Catalog/CatalogEntry.cs b/src/isnd/Data/Catalog/PackageDetails.cs similarity index 100% rename from src/isnd/Data/Catalog/CatalogEntry.cs rename to src/isnd/Data/Catalog/PackageDetails.cs diff --git a/src/isnd/Data/Packages/PackageVersion.cs b/src/isnd/Data/Packages/PackageVersion.cs index 384b4db..49df6b3 100644 --- a/src/isnd/Data/Packages/PackageVersion.cs +++ b/src/isnd/Data/Packages/PackageVersion.cs @@ -10,6 +10,7 @@ using isnd.Entities; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; using NuGet.Versioning; +using System; namespace isnd.Data { @@ -72,6 +73,6 @@ namespace isnd.Data return new Catalog.Package(apiBase, this.PackageId , FullString, new Catalog.PackageDetails(this, apiBase, apiBase + ApiConfig.Registration + "/" + this.PackageId + "/" + FullString + ".json")); } - public bool IsDeleted => LatestCommit.Action == PackageAction.DeletePackage; + public bool IsDeleted => LatestCommit?.Action == PackageAction.DeletePackage; } } \ No newline at end of file diff --git a/src/isnd/Services/PackageManager.cs b/src/isnd/Services/PackageManager.cs index 00a3330..10ca776 100644 --- a/src/isnd/Services/PackageManager.cs +++ b/src/isnd/Services/PackageManager.cs @@ -211,9 +211,14 @@ namespace isnd.Services (string pkgId, string semver = null, string pkgType = null) { return (await dbContext.PackageVersions - .Include(v => v.Package).Include(v => v.Package.Owner) + .Include(v => v.Package) + .Include(v => v.Package.LatestCommit) + .Include(v => v.Package.Owner) + .Include(v => v.LatestCommit) .Where(v => v.PackageId == pkgId - && v.FullString == semver).SingleOrDefaultAsync()).ToPackage( + && v.FullString == semver + && v.LatestCommit !=null + ).SingleOrDefaultAsync()).ToPackage( apiBase); } @@ -237,6 +242,7 @@ namespace isnd.Services return dbContext.PackageVersions .Include(v => v.Package) .Include(v => v.Package.Owner) + .Include(v => v.Package.LatestCommit) .Include(v => v.LatestCommit) .Where(v => v.PackageId == pkgId && semver == v.FullString && (pkgType == null || pkgType == v.Type) @@ -264,6 +270,7 @@ namespace isnd.Services .Include(p => p.Versions) .Include(p => p.Owner) .Include(p => p.LatestCommit) + .Include(p => p.Versions[0].LatestCommit) .SingleOrDefaultAsync(p => p.Id.ToLower() == query.Query); if (scope==null) return null; if (scope.Versions.Count==0) return null; @@ -283,8 +290,11 @@ namespace isnd.Services .Include(p => p.Owner) .Include(p => p.Versions) .Include(p => p.LatestCommit) + .Include(p => p.LatestCommit.Versions) .Where(p => p.Id.StartsWith(query.Query) - && (query.Prerelease || p.Versions.Any(p => !p.IsPrerelease))) + && p.LatestCommit != null + && (query.Prerelease || p.Versions.Any(p => !p.IsPrerelease)) + && p.Versions.Count()>0) .OrderBy(p => p.CommitNId); return new PackageSearchResult(await scope.Skip(query.Skip).Take(query.Take) diff --git a/src/isnd/Views/PackageVersion/Details.cshtml b/src/isnd/Views/PackageVersion/Details.cshtml index da66bbd..2b19767 100644 --- a/src/isnd/Views/PackageVersion/Details.cshtml +++ b/src/isnd/Views/PackageVersion/Details.cshtml @@ -32,6 +32,5 @@
- @Html.ActionLink("Edit", "Edit", new { pkgid = Model.PackageId, version = Model.FullString }) | Back to List
diff --git a/src/isnd/Views/Packages/Details.cshtml b/src/isnd/Views/Packages/Details.cshtml index 7655c79..0328f64 100644 --- a/src/isnd/Views/Packages/Details.cshtml +++ b/src/isnd/Views/Packages/Details.cshtml @@ -37,9 +37,8 @@
<PackageReference Include="@Model.pkgid" Version="@Model.latest.FullString" />
-
- @Html.ActionLink("Edit", "Edit", new { pkgid = Model.pkgid, version = Model.latest.FullString }) | - @Html.ActionLink("Delete", "Delete", new { pkgid = Model.pkgid, version= Model.latest.FullString }) | +
+ @Html.ActionLink("Delete", "Delete", new { pkgid = Model.pkgid, version= Model.latest.FullString }) | Back to List
diff --git a/src/isnd/Views/Shared/_Layout.cshtml b/src/isnd/Views/Shared/_Layout.cshtml index 5554347..3c8f74d 100644 --- a/src/isnd/Views/Shared/_Layout.cshtml +++ b/src/isnd/Views/Shared/_Layout.cshtml @@ -46,7 +46,7 @@
- isn @SiteHelpers.SemVer © 2021-2022 Paul Schneider - Privacy + isn @SiteHelpers.SemVer © 2021-2024 Paul Schneider - Privacy