|
|
|
@ -19,10 +19,6 @@ using isnd.Entities;
|
|
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
|
using isn.abst;
|
|
|
|
|
using isnd.Data.Packages;
|
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
|
|
|
|
using isn;
|
|
|
|
|
using isnd.Helpers;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
namespace isnd.Controllers
|
|
|
|
@ -55,8 +51,6 @@ namespace isnd.Controllers
|
|
|
|
|
TimeStamp = DateTimeOffset.Now.ToUniversalTime()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (IFormFile file in Request.Form.Files)
|
|
|
|
|
{
|
|
|
|
|
string initpath = Path.Combine(Environment.GetEnvironmentVariable("TEMP") ??
|
|
|
|
@ -122,27 +116,23 @@ namespace isnd.Controllers
|
|
|
|
|
var destdir = new DirectoryInfo(dest.DirectoryName);
|
|
|
|
|
if (dest.Exists)
|
|
|
|
|
{
|
|
|
|
|
logger.LogWarning($"Existant package in disk : {dest.FullName}");
|
|
|
|
|
logger.LogWarning($"Existant package on disk : '{dest.FullName}'");
|
|
|
|
|
// La version existe sur le disque,
|
|
|
|
|
// mais si elle ne l'est pas en base de donnéés,
|
|
|
|
|
// on remplace la version sur disque.
|
|
|
|
|
string exFullString = version.ToFullString();
|
|
|
|
|
var pkgv = dbContext.PackageVersions.
|
|
|
|
|
Include(v=>v.LatestCommit)
|
|
|
|
|
.Single(
|
|
|
|
|
.SingleOrDefault(
|
|
|
|
|
v => v.PackageId == pkg.Id && v.FullString == exFullString
|
|
|
|
|
);
|
|
|
|
|
if (pkgv!=null && pkgv.IsDeleted)
|
|
|
|
|
{
|
|
|
|
|
dest.Delete();
|
|
|
|
|
}
|
|
|
|
|
else if (pkgv != null)
|
|
|
|
|
if (pkgv!=null && ! pkgv.IsDeleted)
|
|
|
|
|
{
|
|
|
|
|
string msg = $"existant : {pkg.Id}-{exFullString}";
|
|
|
|
|
logger.LogWarning("400 : {msg}", msg);
|
|
|
|
|
ModelState.AddModelError("pkgversion", msg);
|
|
|
|
|
return BadRequest(this.CreateAPIKO("existant"));
|
|
|
|
|
}
|
|
|
|
|
} else dest.Delete();
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
if (!destdir.Exists) destdir.Create();
|
|
|
|
|