|
|
|
@ -107,7 +107,7 @@ namespace isnd.Services
|
|
|
|
int skip, int take, bool prerelease = false,
|
|
|
|
int skip, int take, bool prerelease = false,
|
|
|
|
string packageType = null)
|
|
|
|
string packageType = null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var scope = dbContext.PackageVersions.Where(
|
|
|
|
var scope = dbContext.PackageVersion.Where(
|
|
|
|
v => v.PackageId.StartsWith(id)
|
|
|
|
v => v.PackageId.StartsWith(id)
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (packageType == null || v.Type == packageType)
|
|
|
|
&& (packageType == null || v.Type == packageType)
|
|
|
|
@ -139,13 +139,13 @@ namespace isnd.Services
|
|
|
|
IQueryable<PackageVersion> results =
|
|
|
|
IQueryable<PackageVersion> results =
|
|
|
|
(parsedVersion != null) ?
|
|
|
|
(parsedVersion != null) ?
|
|
|
|
(packageType == null) ?
|
|
|
|
(packageType == null) ?
|
|
|
|
dbContext.PackageVersions.Where(
|
|
|
|
dbContext.PackageVersion.Where(
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (parsedVersion.CompareTo(new SemanticVersion(v.Major, v.Minor, v.Patch)) < 0)
|
|
|
|
&& (parsedVersion.CompareTo(new SemanticVersion(v.Major, v.Minor, v.Patch)) < 0)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
:
|
|
|
|
:
|
|
|
|
dbContext.PackageVersions.Where(
|
|
|
|
dbContext.PackageVersion.Where(
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (v.Type == packageType)
|
|
|
|
&& (v.Type == packageType)
|
|
|
|
@ -154,12 +154,12 @@ namespace isnd.Services
|
|
|
|
|
|
|
|
|
|
|
|
:
|
|
|
|
:
|
|
|
|
(packageType == null) ?
|
|
|
|
(packageType == null) ?
|
|
|
|
dbContext.PackageVersions.Where(
|
|
|
|
dbContext.PackageVersion.Where(
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
:
|
|
|
|
:
|
|
|
|
dbContext.PackageVersions.Where(
|
|
|
|
dbContext.PackageVersion.Where(
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
v => v.PackageId.ToLower() == id
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (prerelease || !v.IsPrerelease)
|
|
|
|
&& (v.Type == packageType)
|
|
|
|
&& (v.Type == packageType)
|
|
|
|
@ -199,7 +199,7 @@ namespace isnd.Services
|
|
|
|
i = isndSettings.CatalogPageLen;
|
|
|
|
i = isndSettings.CatalogPageLen;
|
|
|
|
foreach (var commit in scope)
|
|
|
|
foreach (var commit in scope)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var validPkgs = (await dbContext.Packages
|
|
|
|
var validPkgs = (await dbContext.Package
|
|
|
|
.Include(po => po.Owner)
|
|
|
|
.Include(po => po.Owner)
|
|
|
|
.Include(pkg => pkg.Versions)
|
|
|
|
.Include(pkg => pkg.Versions)
|
|
|
|
.Include(pkg => pkg.LatestCommit)
|
|
|
|
.Include(pkg => pkg.LatestCommit)
|
|
|
|
@ -237,7 +237,7 @@ namespace isnd.Services
|
|
|
|
TimeStamp = DateTimeOffset.Now.ToUniversalTime()
|
|
|
|
TimeStamp = DateTimeOffset.Now.ToUniversalTime()
|
|
|
|
};
|
|
|
|
};
|
|
|
|
dbContext.Commits.Add(commit);
|
|
|
|
dbContext.Commits.Add(commit);
|
|
|
|
var pkg = await dbContext.PackageVersions.SingleOrDefaultAsync(
|
|
|
|
var pkg = await dbContext.PackageVersion.SingleOrDefaultAsync(
|
|
|
|
v => v.PackageId == pkgId &&
|
|
|
|
v => v.PackageId == pkgId &&
|
|
|
|
v.FullString == version &&
|
|
|
|
v.FullString == version &&
|
|
|
|
v.Type == type
|
|
|
|
v.Type == type
|
|
|
|
@ -246,7 +246,7 @@ namespace isnd.Services
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return new PackageDeletionReport { Deleted = false };
|
|
|
|
return new PackageDeletionReport { Deleted = false };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
dbContext.PackageVersions.Remove(pkg);
|
|
|
|
dbContext.PackageVersion.Remove(pkg);
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
await UpdateCatalogForAsync(commit);
|
|
|
|
await UpdateCatalogForAsync(commit);
|
|
|
|
return new PackageDeletionReport { Deleted = true, DeletedVersion = pkg };
|
|
|
|
return new PackageDeletionReport { Deleted = true, DeletedVersion = pkg };
|
|
|
|
@ -255,7 +255,7 @@ namespace isnd.Services
|
|
|
|
public async Task<PackageDetails> GetPackageDetailsAsync
|
|
|
|
public async Task<PackageDetails> GetPackageDetailsAsync
|
|
|
|
(string pkgId, string version, string type)
|
|
|
|
(string pkgId, string version, string type)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var pkg = await dbContext.PackageVersions
|
|
|
|
var pkg = await dbContext.PackageVersion
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package.Owner)
|
|
|
|
.Include(v => v.Package.Owner)
|
|
|
|
.Include(v => v.LatestCommit)
|
|
|
|
.Include(v => v.LatestCommit)
|
|
|
|
@ -268,7 +268,7 @@ namespace isnd.Services
|
|
|
|
if (pkg == null) return null;
|
|
|
|
if (pkg == null) return null;
|
|
|
|
foreach (var g in pkg.DependencyGroups)
|
|
|
|
foreach (var g in pkg.DependencyGroups)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
g.Dependencies = dbContext.Dependencies.Where(d => d.DependencyGroupId == g.Id).ToList();
|
|
|
|
g.Dependencies = dbContext.Dependency.Where(d => d.DependencyGroupId == g.Id).ToList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new PackageDetails(pkg, apiBase);
|
|
|
|
return new PackageDetails(pkg, apiBase);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -276,7 +276,7 @@ namespace isnd.Services
|
|
|
|
public async Task<Data.Catalog.RegistrationLeaf> GetCatalogEntryAsync
|
|
|
|
public async Task<Data.Catalog.RegistrationLeaf> GetCatalogEntryAsync
|
|
|
|
(string pkgId, string semver, string pkgType = "Dependency")
|
|
|
|
(string pkgId, string semver, string pkgType = "Dependency")
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var version = await dbContext.PackageVersions
|
|
|
|
var version = await dbContext.PackageVersion
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package.LatestCommit)
|
|
|
|
.Include(v => v.Package.LatestCommit)
|
|
|
|
.Include(v => v.Package.Owner)
|
|
|
|
.Include(v => v.Package.Owner)
|
|
|
|
@ -290,7 +290,7 @@ namespace isnd.Services
|
|
|
|
if (version == null) return null;
|
|
|
|
if (version == null) return null;
|
|
|
|
foreach (var g in version.DependencyGroups)
|
|
|
|
foreach (var g in version.DependencyGroups)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
g.Dependencies = dbContext.Dependencies.Where(d => d.DependencyGroupId == g.Id).ToList();
|
|
|
|
g.Dependencies = dbContext.Dependency.Where(d => d.DependencyGroupId == g.Id).ToList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return version.ToPackage(apiBase);
|
|
|
|
return version.ToPackage(apiBase);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -298,13 +298,13 @@ namespace isnd.Services
|
|
|
|
public async Task<PackageDeletionReport> UserAskForPackageDeletionAsync
|
|
|
|
public async Task<PackageDeletionReport> UserAskForPackageDeletionAsync
|
|
|
|
(string uid, string id, string lower, string type)
|
|
|
|
(string uid, string id, string lower, string type)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
PackageVersion packageVersion = await dbContext.PackageVersions
|
|
|
|
PackageVersion packageVersion = await dbContext.PackageVersion
|
|
|
|
.Include(pv => pv.Package)
|
|
|
|
.Include(pv => pv.Package)
|
|
|
|
.FirstOrDefaultAsync(m => m.PackageId == id
|
|
|
|
.FirstOrDefaultAsync(m => m.PackageId == id
|
|
|
|
&& m.FullString == lower && (type == null || m.Type == type));
|
|
|
|
&& m.FullString == lower && (type == null || m.Type == type));
|
|
|
|
if (packageVersion == null) return null;
|
|
|
|
if (packageVersion == null) return null;
|
|
|
|
if (packageVersion.Package.OwnerId != uid) return null;
|
|
|
|
if (packageVersion.Package.OwnerId != uid) return null;
|
|
|
|
dbContext.PackageVersions.Remove(packageVersion);
|
|
|
|
dbContext.PackageVersion.Remove(packageVersion);
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
return new PackageDeletionReport { Deleted = true, DeletedVersion = packageVersion };
|
|
|
|
return new PackageDeletionReport { Deleted = true, DeletedVersion = packageVersion };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -314,7 +314,7 @@ namespace isnd.Services
|
|
|
|
(string pkgId, string semver, string pkgType, bool preRelease)
|
|
|
|
(string pkgId, string semver, string pkgType, bool preRelease)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// PackageDependency
|
|
|
|
// PackageDependency
|
|
|
|
return dbContext.PackageVersions
|
|
|
|
return dbContext.PackageVersion
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package.Owner)
|
|
|
|
.Include(v => v.Package.Owner)
|
|
|
|
.Include(v => v.Package.LatestCommit)
|
|
|
|
.Include(v => v.Package.LatestCommit)
|
|
|
|
@ -329,7 +329,7 @@ namespace isnd.Services
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public PackageVersion GetPackage(string pkgId, string semver, string pkgType)
|
|
|
|
public PackageVersion GetPackage(string pkgId, string semver, string pkgType)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return dbContext.PackageVersions
|
|
|
|
return dbContext.PackageVersion
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.Package)
|
|
|
|
.Include(v => v.LatestCommit)
|
|
|
|
.Include(v => v.LatestCommit)
|
|
|
|
.Include(v => v.DependencyGroups.Last().Dependencies)
|
|
|
|
.Include(v => v.DependencyGroups.Last().Dependencies)
|
|
|
|
@ -342,7 +342,7 @@ namespace isnd.Services
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (string.IsNullOrWhiteSpace(query.Query)) return null;
|
|
|
|
if (string.IsNullOrWhiteSpace(query.Query)) return null;
|
|
|
|
query.Query = query.Query.ToLower();
|
|
|
|
query.Query = query.Query.ToLower();
|
|
|
|
var scope = await dbContext.PackageVersions
|
|
|
|
var scope = await dbContext.PackageVersion
|
|
|
|
.Include(p => p.Package)
|
|
|
|
.Include(p => p.Package)
|
|
|
|
.Include(p => p.Package.Owner)
|
|
|
|
.Include(p => p.Package.Owner)
|
|
|
|
.Include(p => p.LatestCommit)
|
|
|
|
.Include(p => p.LatestCommit)
|
|
|
|
@ -352,7 +352,7 @@ namespace isnd.Services
|
|
|
|
string bid = $"{apiBase}{ApiConfig.Registration}";
|
|
|
|
string bid = $"{apiBase}{ApiConfig.Registration}";
|
|
|
|
foreach (var version in scope)
|
|
|
|
foreach (var version in scope)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
version.DependencyGroups = dbContext.PackageDependencyGroups.Include(d => d.Dependencies)
|
|
|
|
version.DependencyGroups = dbContext.PackageDependencyGroup.Include(d => d.Dependencies)
|
|
|
|
.Where(d => d.PackageId == version.PackageId && d.PackageVersionFullString == version.FullString)
|
|
|
|
.Where(d => d.PackageId == version.PackageId && d.PackageVersionFullString == version.FullString)
|
|
|
|
.ToList();
|
|
|
|
.ToList();
|
|
|
|
version.LatestCommit = dbContext.Commits.Single(c => c.Id == version.CommitNId);
|
|
|
|
version.LatestCommit = dbContext.Commits.Single(c => c.Id == version.CommitNId);
|
|
|
|
@ -371,7 +371,7 @@ namespace isnd.Services
|
|
|
|
return new PackageSearchResult(apiBase);
|
|
|
|
return new PackageSearchResult(apiBase);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var allPackages = dbContext.Packages
|
|
|
|
var allPackages = dbContext.Package
|
|
|
|
.Include(g => g.Versions).OrderBy(v => v.CommitNId)
|
|
|
|
.Include(g => g.Versions).OrderBy(v => v.CommitNId)
|
|
|
|
.Where(d => d.Id.StartsWith(query.Query)
|
|
|
|
.Where(d => d.Id.StartsWith(query.Query)
|
|
|
|
&& (query.Prerelease || d.Versions.Any(v => !v.IsPrerelease)))
|
|
|
|
&& (query.Prerelease || d.Versions.Any(v => !v.IsPrerelease)))
|
|
|
|
@ -386,7 +386,7 @@ namespace isnd.Services
|
|
|
|
foreach (var package in packages)
|
|
|
|
foreach (var package in packages)
|
|
|
|
foreach (var version in package.Versions)
|
|
|
|
foreach (var version in package.Versions)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
version.DependencyGroups = dbContext.PackageDependencyGroups.Include(d => d.Dependencies)
|
|
|
|
version.DependencyGroups = dbContext.PackageDependencyGroup.Include(d => d.Dependencies)
|
|
|
|
.Where(d => d.PackageVersionFullString == version.FullString && d.PackageId == version.PackageId)
|
|
|
|
.Where(d => d.PackageVersionFullString == version.FullString && d.PackageId == version.PackageId)
|
|
|
|
|
|
|
|
|
|
|
|
.ToList();
|
|
|
|
.ToList();
|
|
|
|
@ -447,7 +447,7 @@ namespace isnd.Services
|
|
|
|
var authors = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "authors")?.Value;
|
|
|
|
var authors = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "authors")?.Value;
|
|
|
|
|
|
|
|
|
|
|
|
var packageIdPathInfo = new DirectoryInfo(packageIdPath);
|
|
|
|
var packageIdPathInfo = new DirectoryInfo(packageIdPath);
|
|
|
|
Data.Packages.Package pkg = dbContext.Packages.SingleOrDefault(p => p.Id == pkgId);
|
|
|
|
Data.Packages.Package pkg = dbContext.Package.SingleOrDefault(p => p.Id == pkgId);
|
|
|
|
Commit commit = new Commit
|
|
|
|
Commit commit = new Commit
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Action = PackageAction.PublishPackage,
|
|
|
|
Action = PackageAction.PublishPackage,
|
|
|
|
@ -466,7 +466,7 @@ namespace isnd.Services
|
|
|
|
OwnerId = ownerId,
|
|
|
|
OwnerId = ownerId,
|
|
|
|
Public = true,
|
|
|
|
Public = true,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
dbContext.Packages.Add(pkg);
|
|
|
|
dbContext.Package.Add(pkg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pkg.LatestCommit = commit;
|
|
|
|
pkg.LatestCommit = commit;
|
|
|
|
|
|
|
|
|
|
|
|
@ -485,16 +485,16 @@ namespace isnd.Services
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
string fullStringVersion = nugetVersion.ToFullString();
|
|
|
|
string fullStringVersion = nugetVersion.ToFullString();
|
|
|
|
var pkgVersions = dbContext.PackageVersions.Where
|
|
|
|
var pkgVersions = dbContext.PackageVersion.Where
|
|
|
|
(v => v.PackageId == pkg.Id && v.FullString == fullStringVersion);
|
|
|
|
(v => v.PackageId == pkg.Id && v.FullString == fullStringVersion);
|
|
|
|
if (pkgVersions.Count() > 0)
|
|
|
|
if (pkgVersions.Count() > 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
foreach (var v in pkgVersions.ToArray())
|
|
|
|
foreach (var v in pkgVersions.ToArray())
|
|
|
|
dbContext.PackageVersions.Remove(v);
|
|
|
|
dbContext.PackageVersion.Remove(v);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
string versionFullString = nugetVersion.ToFullString();
|
|
|
|
string versionFullString = nugetVersion.ToFullString();
|
|
|
|
|
|
|
|
|
|
|
|
dbContext.PackageVersions.Add
|
|
|
|
dbContext.PackageVersion.Add
|
|
|
|
(version = new PackageVersion
|
|
|
|
(version = new PackageVersion
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Package = pkg,
|
|
|
|
Package = pkg,
|
|
|
|
@ -512,11 +512,11 @@ namespace isnd.Services
|
|
|
|
|
|
|
|
|
|
|
|
dbContext.Commits.Add(commit);
|
|
|
|
dbContext.Commits.Add(commit);
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var group in dbContext.PackageDependencyGroups.Include(g => g.PackageVersion)
|
|
|
|
foreach (var group in dbContext.PackageDependencyGroup.Include(g => g.PackageVersion)
|
|
|
|
.Where(x => x.PackageId == pkgId && x.PackageVersionFullString == versionFullString)
|
|
|
|
.Where(x => x.PackageId == pkgId && x.PackageVersionFullString == versionFullString)
|
|
|
|
.ToList())
|
|
|
|
.ToList())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
dbContext.PackageDependencyGroups.Remove(group);
|
|
|
|
dbContext.PackageDependencyGroup.Remove(group);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
version.DependencyGroups = new List<PackageDependencyGroup>();
|
|
|
|
version.DependencyGroups = new List<PackageDependencyGroup>();
|
|
|
|
foreach (var framework in frameWorks)
|
|
|
|
foreach (var framework in frameWorks)
|
|
|
|
@ -535,7 +535,7 @@ namespace isnd.Services
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
version.DependencyGroups.Add(group);
|
|
|
|
version.DependencyGroups.Add(group);
|
|
|
|
dbContext.PackageDependencyGroups.Add(group);
|
|
|
|
dbContext.PackageDependencyGroup.Add(group);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
|