diff --git a/nuget-host.sln b/apple.sln similarity index 100% rename from nuget-host.sln rename to apple.sln diff --git a/src/nuget-host/Controllers/PackagesController.cs b/src/nuget-host/Controllers/PackagesController.cs index a9a4e75..dffaae9 100644 --- a/src/nuget-host/Controllers/PackagesController.cs +++ b/src/nuget-host/Controllers/PackagesController.cs @@ -131,17 +131,29 @@ namespace nuget_host.Controllers source.MoveTo(fullpath); files.Add(name); - var newversion = new PackageVersion + string fullstringversion = version.ToFullString(); + PackageVersion pkgver = dbContext.PackageVersions.FirstOrDefault + (v => v.PackageId == package.Id && v.FullString == fullstringversion); + if (pkgver == null) { - Package = package, - Major = version.Major, - Minor = version.Minor, - Patch = version.Patch, - IsPrerelease = version.IsPrerelease, - FullString = version.ToFullString() - }; - dbContext.PackageVersions.Add(newversion); - await dbContext.SaveChangesAsync(); + pkgver = new PackageVersion + { + Package = package, + Major = version.Major, + Minor = version.Minor, + Patch = version.Patch, + IsPrerelease = version.IsPrerelease, + FullString = version.ToFullString() + }; + dbContext.PackageVersions.Add(pkgver); + await dbContext.SaveChangesAsync(); + } + else + { + // existant en db mais pas sur le disque + // TODO prise en charge de ce cas anormal + } + logger.LogInformation($"new package : {nuspec.Name}"); } }