public async Task <bool> DeleteProjectVersionPackageAsync(Guid projectId, string version) { var projectVersion = await _context.DocumentationProjectVersions .FirstOrDefaultAsync(v => v.Version == version && v.Project.Id == projectId); if (projectVersion == null) { return(false); } var metadataPath = GetMetadataSavedFilesPath(projectId, projectVersion.FileId); try { using (var metadataStream = (await _fileManager.GetFileAsync(AppConstants.PROJECTS_CONTAINER, metadataPath)).Value) { using (var streamReader = new StreamReader(metadataStream)) { var json = await streamReader.ReadToEndAsync(); var filePaths = JsonConvert.DeserializeObject <List <string> >(json); foreach (var filePath in filePaths) { await _fileManager.DeleteFileAsync(AppConstants.PROJECTS_CONTAINER, filePath); } _context.DocumentationProjectVersions.Remove(projectVersion); await _context.SaveChangesAsync(); return(true); } } } catch { return(false); } }
public async Task <bool> DeleteProjectVersionPackageAsync(Guid projectId, string version) { var projectVersion = await _context.DocumentationProjectVersions .FirstOrDefaultAsync(v => v.Version == version && v.Project.Id == projectId); if (projectVersion == null) { return(false); } var packagePath = GetPackagePath(projectId, projectVersion.FileId); try { await _fileManager.DeleteFileAsync(AppConstants.PROJECTS_CONTAINER, packagePath); } catch { return(false); } _context.DocumentationProjectVersions.Remove(projectVersion); await _context.SaveChangesAsync(); return(true); }