A valid package index page

This commit is contained in:
Paul Schneider 2022-10-15 18:26:55 +01:00
commit 58f77a06ea
15 changed files with 210 additions and 153 deletions

View file

@ -2,12 +2,11 @@ namespace isnd.Helpers
{
public static class PackageIdHelpers
{
internal static bool SeparatedByMinusMatch(string id, string q)
{
foreach (var part in id.Split('-'))
{
if (part.StartsWith(q, System.StringComparison.OrdinalIgnoreCase)) return true;
if (part.Equals(q, System.StringComparison.OrdinalIgnoreCase)) return true;
}
return false;
}
@ -24,7 +23,7 @@ namespace isnd.Helpers
while (id.Length > i && char.IsLower(id[i])) i++;
if (i == 0) break;
id = id.Substring(i);
if (id.StartsWith(query, System.StringComparison.OrdinalIgnoreCase)) return true;
if (id.Equals(query, System.StringComparison.OrdinalIgnoreCase)) return true;
}
return false;
}

View file

@ -11,35 +11,10 @@ namespace isnd.Helpers
{
public static class PackageVersionHelpers
{
public static bool IsOwner(this ClaimsPrincipal user, PackageVersion v)
{
var userId = user.FindFirstValue(ClaimTypes.NameIdentifier);
return v.Package.OwnerId == userId;
}
public static RegistrationPageIndex CreateRegistrationPages(this IEnumerable<RegistrationLeaf> leaves,
string bid)
{
List<RegistrationPage> pages = new List<RegistrationPage>();
var ids = leaves.Select(l => l.Entry.Id).Distinct().ToArray();
foreach (var id in ids)
{
var lbi = leaves.Where(l=>l.Entry.Id == id).OrderBy(l=>
new Version(l.Entry.version));
var latest = new Version(lbi.Last().Entry.version);
pages.Add(new RegistrationPage(bid + id + "/" + latest.Major + "."
+ latest.Minor + "."
+ latest.Build)
{
Count = lbi.Count(),
Lower = new Version(lbi.First().Entry.version),
Upper = latest,
Items = lbi.ToList(),
Parent = bid + id + "/" + ApiConfig.IndexDotJson,
});
}
return new RegistrationPageIndex(pages);
}
}
}