Compare commits

..

No commits in common. 'e2775dedaf9c5a210f3da38ded74fa394d3deac1' and 'd3b96088abb70d1716bbc3f748df82d1d50a6fe6' have entirely different histories.

11 changed files with 46 additions and 39 deletions

@ -35,7 +35,7 @@ namespace isnd.Controllers
};
var index = await packageManager.GetPackageRegistrationIndexAsync(query);
if (index == null) return NotFound();
// query.TotalHits = result.Items.Select(i=>i.Items.Length).Aggregate((a,b)=>a+b);
return Ok(index);
}
// return a Package

@ -27,6 +27,8 @@ namespace isnd.Controllers
public partial class PackagesController
{
// TODO [Authorize(Policy = IsndConstants.RequireValidApiKey)]
[HttpPut("~" + Constants.ApiVersionPrefix + ApiConfig.Package)]
public async Task<IActionResult> Put()

@ -18,13 +18,8 @@ namespace isnd.Controllers
// Web search
public async Task<IActionResult> Index(PackageRegistrationQuery model)
{
var pkgs = await packageManager.SearchPackageAsync(model);
return View(new RegistrationPageIndexQueryAndResult
{
Query = model,
Result = pkgs.ToArray()
});
return View(new RegistrationPageIndexQueryAndResult{Query = model,
Result = await packageManager.SearchPackageAsync(model)});
}
public async Task<IActionResult> Details(PackageDetailViewModel model)
@ -35,7 +30,6 @@ namespace isnd.Controllers
}
var packageVersion = dbContext.PackageVersions
.Include(p=>p.LatestCommit)
.Include(p => p.Package)
.Where(m => m.PackageId == model.pkgid)
.OrderByDescending(p => p)
@ -54,7 +48,7 @@ namespace isnd.Controllers
}
const int MAX_PKG_VERSION_LIST = 50;
[Authorize, HttpGet]
[Authorize]
public async Task<IActionResult> Delete(string pkgid, string version, string pkgtype)
{
if (pkgid == null || version == null)
@ -72,7 +66,7 @@ namespace isnd.Controllers
}
// POST: PackageVersion/Delete/5
[HttpPost]
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(string PackageId, string FullString,
string Type)

@ -14,17 +14,31 @@ namespace isnd.Data.Catalog
Items = new List<CatalogPage>();
}
public PackageRegistration(string bid, string id, string apiBase, Packages.Package pkg) : base(bid + $"/{id}/index.json")
public PackageRegistration(string bid, string id, string apiBase, IEnumerable<Packages.Package> pkgs) : base(bid + $"/{id}/index.json")
{
Items = new List<CatalogPage>
{
new CatalogPage(bid, id, apiBase, pkg.Versions)
};
if (pkg.Versions.Count>0)
Items = new List<CatalogPage>();
long cnid = 0;
var pkgsGroups = pkgs.GroupBy(l => l.Id);
// Pour tous les groupes par Id
foreach (var gsp in pkgsGroups)
{
CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString();
CommitTimeStamp = pkg.Versions.Max(v=>v.LatestCommit.CommitTimeStamp);
var pkgsbi = gsp.ToArray();
List<PackageVersion> versions = new List<PackageVersion>();
foreach(var l in pkgsbi.Select(p => p.Versions))
{
versions.AddRange(l);
foreach (var pv in l)
{
if (pv.CommitNId> cnid)
{
cnid = pv.CommitNId;
}
}
}
Items.Add(new CatalogPage(bid, gsp.Key, apiBase, versions));
}
CommitId = cnid.ToString();
}
[JsonProperty("count")]
@ -35,7 +49,5 @@ namespace isnd.Data.Catalog
public string CommitId { get; set; }
public DateTimeOffset CommitTimeStamp { get; internal set; }
}
}

@ -76,6 +76,5 @@ namespace isnd.Data
}
);
}
public bool IsDeleted => LatestCommit.Action == PackageAction.DeletePackage;
}
}

@ -30,7 +30,7 @@ namespace isnd.Interfaces
Task<PackageRegistration> GetCatalogIndexAsync();
Task<PackageRegistration> GetPackageRegistrationIndexAsync(PackageRegistrationQuery query);
Task<IEnumerable<PackageRegistration>> SearchPackageAsync(PackageRegistrationQuery query);
Task<PackageRegistration> SearchPackageAsync(PackageRegistrationQuery query);
}
}

@ -194,7 +194,7 @@ namespace isnd.Services
var commit = new Commit
{
Action = PackageAction.DeletePackage,
TimeStamp = DateTimeOffset.Now.ToUniversalTime()
TimeStamp = DateTime.Now
};
dbContext.Commits.Add(commit);
var pkg = await dbContext.PackageVersions.SingleOrDefaultAsync(
@ -276,13 +276,13 @@ namespace isnd.Services
query.Query = query.Query.ToLower();
var scope = await dbContext.Packages.Include(p => p.Versions).Include(p => p.Owner)
.Include(p=>p.LatestVersion)
.SingleAsync(p => p.Id.ToLower() == query.Query);
if (scope.Versions.Count==0) return null;
.Where(p => p.Id.ToLower() == query.Query).Skip(query.Skip).Take(query.Take).ToListAsync();
string bid = $"{apiBase}{ApiConfig.Registration}";
return
new PackageRegistration(bid, query.Query, apiBase, scope);
}
public async Task<IEnumerable<PackageRegistration>> SearchPackageAsync(PackageRegistrationQuery query)
public async Task<PackageRegistration> SearchPackageAsync(PackageRegistrationQuery query)
{
string bid = $"{apiBase}{ApiConfig.Registration}";
@ -297,7 +297,8 @@ namespace isnd.Services
var total = scope.Count();
var pkgs = scope.Skip(query.Skip).Take(query.Take);
return pkgs.Select(p => new PackageRegistration(bid, query.Query, apiBase, p));
return
new PackageRegistration(bid, query.Query, apiBase, pkgs);
}
private static bool MatchingExact(Data.Packages.Package p, PackageRegistrationQuery query)

@ -1,4 +1,3 @@
using System.Collections.Generic;
using isnd.Data.Catalog;
namespace isnd
@ -6,6 +5,6 @@ namespace isnd
public class RegistrationPageIndexQueryAndResult
{
public PackageRegistrationQuery Query { get; set; }
public PackageRegistration[] Result { get; set; }
public PackageRegistration Result { get; set; }
}
}

@ -2,6 +2,7 @@
@{
ViewData["Title"] = "Index";
var apiBaseUrl = "/v3";
}
<h2>Index</h2>
@ -44,11 +45,11 @@
<tr>
<td>
@Html.DisplayFor(modelItem => item.PackageId)
<a href="@Constants.ApiVersionPrefix@item.NugetLink">
<a href="@apiBaseUrl@item.NugetLink">
nuget
</a>
<a href="@Constants.ApiVersionPrefix@item.NuspecLink">
<a href="@apiBaseUrl@item.NuspecLink">
nuspec
</a>
</td>

@ -43,7 +43,7 @@
</dd>
</dl>
<form asp-action="DeleteConfirmed">
<form asp-action="Delete">
<input type="hidden" asp-for="PackageId" />
<input type="hidden" asp-for="FullString" />
<input type="hidden" asp-for="Type" />

@ -10,26 +10,25 @@
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Result[0].Items[0].Items[0].Id)
@Html.DisplayNameFor(model => model.Result.Items[0].Items[0].Id)
</th>
<th>
@Html.DisplayNameFor(model => model.Result[0].Items[0].Items[0].Entry.Description)
@Html.DisplayNameFor(model => model.Result.Items[0].Items[0].Entry.Description)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var regpage in Model.Result)
foreach (var i in regpage.Items) {
@foreach (var regpage in Model.Result.Items) {
<tr>
<td>
@i.GetPackageId()
@regpage.GetPackageId()
</td>
<td>
</td>
<td>
@Html.ActionLink("Details", "Details", new { pkgid = i.GetPackageId() })
@Html.ActionLink("Details", "Details", new { pkgid = regpage.GetPackageId() })
</td>
</tr>
}

Loading…