Files
isn/src/isnd/Data/Catalog/PackageRegistration.cs
2023-04-26 18:22:48 +01:00

42 lines
1.1 KiB
C#

using isnd.Data.Packages;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
namespace isnd.Data.Catalog
{
public class PackageRegistration : Permalink
{
public PackageRegistration(string url) : base(url)
{
Items = new List<CatalogPage>();
}
public PackageRegistration(string bid, string id, string apiBase, Packages.Package pkg) : base(bid + $"/{id}/index.json")
{
Items = new List<CatalogPage>
{
new CatalogPage(bid, id, apiBase, pkg.Versions)
};
if (pkg.Versions.Count>0)
{
CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString();
CommitTimeStamp = pkg.Versions.Max(v=>v.LatestCommit.CommitTimeStamp);
}
}
[JsonProperty("count")]
public int Count { get => Items.Count; }
[JsonProperty("items")]
public List<CatalogPage> Items { get; set; }
public string CommitId { get; set; }
public DateTimeOffset CommitTimeStamp { get; internal set; }
}
}