package Visual_DVM_2021.Passes.All; import Common.Constants; import Common.Current; import Common.Global; import Common.UI.UI; import Common.Utils.Utils; import ProjectData.Project.db_project_info; import TestingSystem.Test.Test; import TestingSystem.TestingServer; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.Server.PublishServerObject; import org.apache.commons.io.FileUtils; import java.io.File; import java.nio.file.Paths; public class PublishTest extends PublishServerObject { public PublishTest() { super(Global.testingServer, Test.class); } protected db_project_info project = null; protected boolean setProject() { if (Current.Check(Log, Current.Group, Current.Project) && UI.Question("Добавить текущий проект в глобальную базу тестов")) { project = Current.getProject(); if (project.checkSubdirectories(Log)) { switch (project.languageName) { case fortran: return passes.get(PassCode_2021.SPF_GetMaxMinBlockDistribution).Do(); case c: project.testMaxDim = Utils.getCProjectMaxDim(project); return true; default: return false; } } } return false; } @Override public boolean fillObjectFields() throws Exception { if (setProject()) { target.description = project.getLocalName() + " " + project.description; target.dim = project.testMaxDim; target.group_id = Current.getGroup().id; if (super.fillObjectFields()) { File src = Utils.getTempFileName("test"); Utils.CheckAndCleanDirectory(src); project.Clone(src, false); FileUtils.copyFile(project.db.getFile(), Paths.get(src.getAbsolutePath(),Constants.data, project.db.getFile().getName()).toFile()); //архивация. File archive = Utils.getTempFileName("test_archive"); if (passes.get(PassCode_2021.ZipFolderPass).Do(src.getAbsolutePath(), archive.getAbsolutePath())) { target.project_archive_bytes = Utils.packFile(archive); return true; } } } return false; } //-- }