|
|
|
@ -43,8 +43,6 @@ namespace nuget_host.Controllers
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var clientVersionId = Request.Headers["X-NuGet-Client-Version"];
|
|
|
|
|
var apiKey = Request.Headers["X-NuGet-ApiKey"];
|
|
|
|
|
ViewData["versionId"] = typeof(PackagesController).Assembly.FullName;
|
|
|
|
@ -78,9 +76,8 @@ namespace nuget_host.Controllers
|
|
|
|
|
{
|
|
|
|
|
if (entry.FullName.EndsWith(".nuspec"))
|
|
|
|
|
{
|
|
|
|
|
// var entry = archive.GetEntry(filename);
|
|
|
|
|
var specstr = entry.Open();
|
|
|
|
|
NuGet.Packaging.Core.NuspecCoreReader reader = new NuspecCoreReader(specstr);
|
|
|
|
|
NuspecCoreReader reader = new NuspecCoreReader(specstr);
|
|
|
|
|
|
|
|
|
|
string pkgdesc = reader.GetDescription();
|
|
|
|
|
string pkgid = reader.GetId();
|
|
|
|
@ -90,33 +87,46 @@ namespace nuget_host.Controllers
|
|
|
|
|
string pkgpath = Path.Combine(pkgidpath, version.Version.ToString());
|
|
|
|
|
string name = $"{pkgid}-{version}.nupkg";
|
|
|
|
|
string fullpath = Path.Combine(pkgpath, name);
|
|
|
|
|
|
|
|
|
|
Package package;
|
|
|
|
|
var destpkgiddir = new DirectoryInfo(pkgidpath);
|
|
|
|
|
if (destpkgiddir.Exists)
|
|
|
|
|
{
|
|
|
|
|
package = dbContext.Packages.SingleOrDefault(p => p.Id == pkgid);
|
|
|
|
|
if (package != null) if (package.OwnerId != apikey.UserId)
|
|
|
|
|
{
|
|
|
|
|
return new ForbidResult();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
destpkgiddir.Create();
|
|
|
|
|
package = new Package
|
|
|
|
|
{
|
|
|
|
|
Id = pkgid,
|
|
|
|
|
Description = pkgdesc,
|
|
|
|
|
OwnerId = apikey.UserId
|
|
|
|
|
};
|
|
|
|
|
dbContext.Packages.Add(package);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var source = new FileInfo(initpath);
|
|
|
|
|
var dest = new FileInfo(fullpath);
|
|
|
|
|
var destdir = new DirectoryInfo(dest.DirectoryName);
|
|
|
|
|
if (dest.Exists)
|
|
|
|
|
{
|
|
|
|
|
ViewData["error"] = "existe déjà";
|
|
|
|
|
logger.LogInformation("400 : existe déjà");
|
|
|
|
|
ViewData["error"] = "existant";
|
|
|
|
|
logger.LogWarning("400 : existant");
|
|
|
|
|
return BadRequest(ViewData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
destdir.Create();
|
|
|
|
|
|
|
|
|
|
source.MoveTo(fullpath);
|
|
|
|
|
files.Add(name);
|
|
|
|
|
var newpkg = new Package
|
|
|
|
|
{
|
|
|
|
|
Id = pkgid,
|
|
|
|
|
Description = pkgdesc,
|
|
|
|
|
OwnerId = apikey.UserId
|
|
|
|
|
};
|
|
|
|
|
dbContext.Packages.Add(newpkg);
|
|
|
|
|
|
|
|
|
|
var newversion = new PackageVersion
|
|
|
|
|
{
|
|
|
|
|
Package = newpkg,
|
|
|
|
|
Package = package,
|
|
|
|
|
Major = version.Major,
|
|
|
|
|
Minor = version.Minor,
|
|
|
|
|
Patch = version.Patch,
|
|
|
|
@ -124,11 +134,9 @@ namespace nuget_host.Controllers
|
|
|
|
|
FullString = version.ToFullString()
|
|
|
|
|
};
|
|
|
|
|
dbContext.PackageVersions.Add(newversion);
|
|
|
|
|
|
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
|
logger.LogInformation($"new package : {entry.Name}");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|