42 lines
1.1 KiB
C#
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; }
|
|
|
|
|
|
}
|
|
} |