public static async Task Delete( int projectId, string version, string branch, StorageClient client, upwardContext upwardDb, accountsContext accountsDb) { var ver = version.Split("."); int major = int.Parse(ver[0]); int minor = int.Parse(ver[1]); int patch = int.Parse(ver[2]); var pkg = await upwardDb.Pkgfile .Where(r => r.Project == projectId && r.Major == major && r.Minor == minor && r.Patch == patch && r.Branch == branch) .FirstOrDefaultAsync(); var project = await accountsDb.Project .Where(r => r.Id == projectId) .FirstOrDefaultAsync(); var user = await accountsDb.Userprofile .Where(r => r.Id == project.Userid) .FirstOrDefaultAsync(); user.Size -= pkg.Size; upwardDb.Pkgfile.Remove(pkg); if (pkg.Filename.Count() == 0) { await accountsDb.SaveChangesAsync(); await upwardDb.SaveChangesAsync(); return; } else { foreach (string name in pkg.Filename) { await client.DeleteObjectAsync("upward-test", $"pkg/{projectId}/{branch}/{version}/{name}"); } await accountsDb.SaveChangesAsync(); await upwardDb.SaveChangesAsync(); } }
public static async Task UploadFile( int projectId, MemoryStream memBody, string version, string filename, string contentType, long contentLength, string branch, StorageClient client, upwardContext upwardDb, accountsContext accountsDb) { var ver = version.Split("."); int major = int.Parse(ver[0]); int minor = int.Parse(ver[1]); int patch = int.Parse(ver[2]); var pkg = await upwardDb.Pkgfile .Where(r => r.Project == projectId && r.Major == major && r.Minor == minor && r.Patch == patch && r.Branch == branch) .FirstOrDefaultAsync(); var project = await accountsDb.Project .Where(r => r.Id == projectId) .FirstOrDefaultAsync(); var user = await accountsDb.Userprofile .Where(r => r.Id == project.Userid) .FirstOrDefaultAsync(); pkg.Filename = pkg.Filename.Concat(new string[] { filename }).ToArray(); pkg.Size += contentLength; user.Size += contentLength; await client.UploadObjectAsync( bucket : "upward-test", objectName : $"pkg/{projectId}/{branch}/{version}/{filename}", contentType : contentType, source : memBody ); await upwardDb.SaveChangesAsync(); await accountsDb.SaveChangesAsync(); }
public static async Task DeleteFile( int projectId, string version, string filename, string branch, StorageClient client, upwardContext upwardDb, accountsContext accountsDb) { var ver = version.Split("."); int major = int.Parse(ver[0]); int minor = int.Parse(ver[1]); int patch = int.Parse(ver[2]); var pkg = await upwardDb.Pkgfile .Where(r => r.Project == projectId && r.Major == major && r.Minor == minor && r.Patch == patch && r.Branch == branch) .FirstOrDefaultAsync(); var project = await accountsDb.Project .Where(r => r.Id == projectId) .FirstOrDefaultAsync(); var user = await accountsDb.Userprofile .Where(r => r.Id == project.Userid) .FirstOrDefaultAsync(); var metaData = await client .GetObjectAsync("upward-test", $"pkg/{projectId}/{branch}/{version}/{filename}"); pkg.Filename = pkg.Filename.Where(val => val != filename).ToArray(); pkg.Size -= (long)metaData.Size; user.Size -= (long)metaData.Size; await client.DeleteObjectAsync("upward-test", $"pkg/{projectId}/{branch}/{version}/{filename}"); await accountsDb.SaveChangesAsync(); await upwardDb.SaveChangesAsync(); }
public DeletePackageController(upwardContext _upwardDb, accountsContext _accountsDb, StorageClient _storageClient) { upwardDb = _upwardDb; storageClient = _storageClient; }
// ValidSemver must be used before NoRollback. public static async Task <bool> NoRollback(string version, string branch, int projectId, upwardContext upwardDb) { var ver = version.Split("."); var major = int.Parse(ver[0]); var minor = int.Parse(ver[1]); var patch = int.Parse(ver[2]); var hasRollback = await upwardDb.Pkgfile .AnyAsync(r => r.Project == projectId && r.Branch == branch && (r.Major > major || (r.Minor > minor && r.Major == major) || (r.Patch > patch && r.Major == major && r.Minor == minor) || (r.Patch == patch && r.Major == major && r.Minor == minor))); if (hasRollback) { return(false); } return(true); }
public ProjectSettingsController(upwardContext _upwardDb, accountsContext _accountsDb) { upwardDb = _upwardDb; accountsDb = _accountsDb; }
public PutPackageController(StorageClient storageClient, accountsContext _accountsDb, upwardContext _upwardDb) { _storageClient = storageClient; upwardDb = _upwardDb; accountsDb = _accountsDb; }
public GetPackageController(upwardContext _upwardDb, StorageClient _storageClient) { upwardDb = _upwardDb; storageClient = _storageClient; }