cleaner code
This commit is contained in:
@ -108,7 +108,7 @@ namespace isnd.Controllers
|
|||||||
Id = pkgid,
|
Id = pkgid,
|
||||||
Description = pkgdesc,
|
Description = pkgdesc,
|
||||||
OwnerId = apikey.UserId,
|
OwnerId = apikey.UserId,
|
||||||
LatestVersion = commit,
|
LatestVersion = commit
|
||||||
};
|
};
|
||||||
dbContext.Packages.Add(pkg);
|
dbContext.Packages.Add(pkg);
|
||||||
}
|
}
|
||||||
@ -122,17 +122,18 @@ namespace isnd.Controllers
|
|||||||
// La version existe sur le disque,
|
// La version existe sur le disque,
|
||||||
// mais si elle ne l'est pas en base de donnéés,
|
// mais si elle ne l'est pas en base de donnéés,
|
||||||
// on remplace la version sur disque.
|
// on remplace la version sur disque.
|
||||||
|
string exFullString = version.ToFullString();
|
||||||
var pkgv = dbContext.PackageVersions.Where(
|
var pkgv = dbContext.PackageVersions.Where(
|
||||||
v => v.PackageId == pkg.Id
|
v => v.PackageId == pkg.Id && v.FullString == exFullString
|
||||||
);
|
);
|
||||||
|
if (pkgv !=null && !pkgv.Any())
|
||||||
if (pkgv !=null && pkgv.Count()==0)
|
|
||||||
{
|
{
|
||||||
dest.Delete();
|
dest.Delete();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
logger.LogWarning("400 : pkgversion:existant");
|
string msg = $"existant {pkg.Id}-{exFullString}";
|
||||||
ModelState.AddModelError("pkgversion", "existant" );
|
logger.LogWarning("400 : {msg}", msg);
|
||||||
|
ModelState.AddModelError("pkgversion", msg);
|
||||||
return BadRequest(CreateAPIKO("existant", ModelState));
|
return BadRequest(CreateAPIKO("existant", ModelState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ namespace isnd.Data.Catalog
|
|||||||
{
|
{
|
||||||
new CatalogPage(bid, id, apiBase, pkg.Versions)
|
new CatalogPage(bid, id, apiBase, pkg.Versions)
|
||||||
};
|
};
|
||||||
|
|
||||||
if (pkg.Versions.Count>0)
|
if (pkg.Versions.Count>0)
|
||||||
{
|
{
|
||||||
CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString();
|
CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString();
|
||||||
|
@ -291,26 +291,16 @@ namespace isnd.Services
|
|||||||
.Include(p => p.Versions)
|
.Include(p => p.Versions)
|
||||||
.Include(p => p.Owner)
|
.Include(p => p.Owner)
|
||||||
.Include(p=>p.LatestVersion)
|
.Include(p=>p.LatestVersion)
|
||||||
.ToListAsync())
|
.Where(p => p.Id == query.Query
|
||||||
.Where(p => Matching(p, query))
|
&& (p.Versions.Any() && query.Prerelease || p.Versions.Any(v => !v.IsPrerelease)))
|
||||||
;
|
|
||||||
|
.ToListAsync());
|
||||||
var total = scope.Count();
|
var total = scope.Count();
|
||||||
var pkgs = scope.Skip(query.Skip).Take(query.Take);
|
var pkgs = scope.Skip(query.Skip).Take(query.Take);
|
||||||
|
|
||||||
return pkgs.Select(p => new PackageRegistration(bid, query.Query, apiBase, p));
|
return pkgs.Select(p => new PackageRegistration(bid, query.Query, apiBase, p));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool MatchingExact(Data.Packages.Package p, PackageRegistrationQuery query)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
p.Id == query.Query
|
|
||||||
&& (query.Prerelease || p.Versions.Any(v => !v.IsPrerelease));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool Matching(Data.Packages.Package p, PackageRegistrationQuery query)
|
|
||||||
{
|
|
||||||
return p.Id.StartsWith(query.Query)
|
|
||||||
&& (query.Prerelease || p.Versions.Any(v => !v.IsPrerelease));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user