diff --git a/src/Common/Database/Database.java b/src/Common/Database/Database.java index 4eed9276..8ecaad7c 100644 --- a/src/Common/Database/Database.java +++ b/src/Common/Database/Database.java @@ -118,6 +118,17 @@ public abstract class Database { } else throw new RepositoryRefuseException("Таблица " + Utils.Brackets(table.Name) + " не содержит объект с ключом " + Utils.Brackets(to_delete.getPK().toString())); } + public DBObject DeleteByPK(Class object_class, Object key) throws Exception { + DBTable table = tables.get(object_class); + if (table.Data.containsKey(key)) { + DBObject o = (DBObject) table.Data.get(key); + delete(table, o); + table.Data.remove(key); + return o; + } else + throw new RepositoryRefuseException("Таблица " + Utils.Brackets(table.Name) + " не содержит объект с ключом " + Utils.Brackets(key.toString())); + } + // не работает с автоинкрементом. public DBObject getObjectCopyByPK(Class table_class, Object pk) throws Exception { DBTable table = tables.get(table_class); diff --git a/src/Repository/Server/ServerCode.java b/src/Repository/Server/ServerCode.java index 0d60ec9a..a3d908a0 100644 --- a/src/Repository/Server/ServerCode.java +++ b/src/Repository/Server/ServerCode.java @@ -39,7 +39,6 @@ public enum ServerCode { //-- PublishAccountObjects, EditAccountObject, - DeleteAccountObjects, //-- EXIT, //-- @@ -74,5 +73,8 @@ public enum ServerCode { DownloadSapforTasksPackage, Patch, EmailSapforAssembly, + //- + DeleteAccountObjectByPK, + //- OLD } diff --git a/src/TestingSystem/TestingServer.java b/src/TestingSystem/TestingServer.java index 285e005a..fe06e892 100644 --- a/src/TestingSystem/TestingServer.java +++ b/src/TestingSystem/TestingServer.java @@ -15,7 +15,6 @@ import Repository.RepositoryRefuseException; import Repository.RepositoryServer; import Repository.Server.ServerCode; import Repository.Server.ServerExchangeUnit_2021; -import SapforTestingSystem.Json.SapforTasksResults_json; import SapforTestingSystem.SapforTask.SapforTask; import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage; import SapforTestingSystem.ServerSapfor.ServerSapfor; @@ -310,11 +309,6 @@ public class TestingServer extends RepositoryServer { groups.sort(Comparator.comparing(o -> o.description)); return groups; } - public SapforTasksResults_json getSapforPackageResults(SapforTasksPackage sapforTasksPackage) throws Exception { - File results_file = new File(sapforTasksPackage.workspace, Constants.results_json); - return (SapforTasksResults_json) Utils.jsonFromFile( - results_file, SapforTasksResults_json.class); - } @Override protected void Session() throws Exception { DBObject dbObject = null; @@ -406,21 +400,6 @@ public class TestingServer extends RepositoryServer { response = new ServerExchangeUnit_2021(ServerCode.OK); response.object = dbObject; break; - case DeleteAccountObjects: - Print("Удалить список объектов с базы пользователя " + request.arg); - SetCurrentAccountDB(request.arg); - Vector objects = (Vector) request.object; - account_db.BeginTransaction(); - for (Object object : objects) { - dbObject = (DBObject) object; - if (canDelete(dbObject)) { - account_db.DeleteWithCheck(dbObject); - DeleteAction(dbObject); - } - } - account_db.Commit(); - response = new ServerExchangeUnit_2021(ServerCode.OK); - break; case PublishAccountObjects: Print("Опубликовать объекты для пользователя " + request.arg); SetCurrentAccountDB(request.arg); @@ -523,6 +502,13 @@ public class TestingServer extends RepositoryServer { response = new ServerExchangeUnit_2021(ServerCode.OK); response.object = Utils.packFile(account_db.getFile()); break; + case DeleteAccountObjectByPK: + Print("Удалить объект из базы пользователя " + request.arg); + SetCurrentAccountDB(request.arg); + Pair to_delete = (Pair) request.object; + DeleteAction(account_db.DeleteByPK(to_delete.getKey(), to_delete.getValue())); + response = new ServerExchangeUnit_2021(ServerCode.OK); + break; default: throw new RepositoryRefuseException("Неподдерживаемый код: " + code); } diff --git a/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java b/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java index 125cdaa3..bba13680 100644 --- a/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java +++ b/src/Visual_DVM_2021/Passes/All/DeleteSapforTasksPackage.java @@ -2,14 +2,10 @@ package Visual_DVM_2021.Passes.All; import Common.Current; import Common.UI.UI; import Common.Utils.Utils; -import Repository.Server.ServerCode; -import Repository.Server.ServerExchangeUnit_2021; import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage; import TestingSystem.TasksPackage.TasksPackageState; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.TestingSystemPass; - -import java.util.Vector; public class DeleteSapforTasksPackage extends TestingSystemPass { @Override public String getIconPath() { @@ -36,10 +32,7 @@ public class DeleteSapforTasksPackage extends TestingSystemPass vector = new Vector<>(); - vector.add(target); - Command(new ServerExchangeUnit_2021(ServerCode.DeleteAccountObjects, Current.getAccount().email, vector)); + DeleteAccountObject(target); } @Override protected void performDone() throws Exception { diff --git a/src/Visual_DVM_2021/Passes/All/DeleteSelectedTestsRunTasks.java b/src/Visual_DVM_2021/Passes/All/DeleteSelectedTestsRunTasks.java deleted file mode 100644 index f80b26db..00000000 --- a/src/Visual_DVM_2021/Passes/All/DeleteSelectedTestsRunTasks.java +++ /dev/null @@ -1,45 +0,0 @@ -package Visual_DVM_2021.Passes.All; -import Common.Current; -import Common.Global; -import Repository.Server.ServerCode; -import Repository.Server.ServerExchangeUnit_2021; -import TestingSystem.Tasks.TestRunTask; -import Visual_DVM_2021.Passes.PassCode_2021; -import Visual_DVM_2021.Passes.TestingSystemPass; - -import java.util.Vector; -public class DeleteSelectedTestsRunTasks extends TestingSystemPass> { - @Override - public String getButtonText() { - return ""; - } - @Override - public String getIconPath() { - return "/icons/Delete.png"; - } - @Override - protected boolean canStart(Object... args) throws Exception { - target = new Vector<>(); - //------------------------ - if (Current.getAccount().CheckRegistered(Log)) { - for (TestRunTask task : Global.testingServer.account_db.testRunTasks.getCheckedItems()) { - if (!task.state.isActive()) - target.add(task); - } - if (target.isEmpty()) { - Log.Writeln_("не отмечено неактивных задач."); - return false; - } - return true; - } - return false; - } - @Override - protected void ServerAction() throws Exception { - Command(new ServerExchangeUnit_2021(ServerCode.DeleteAccountObjects, Current.getAccount().email, target)); - } - @Override - protected void performDone() throws Exception { - passes.get(PassCode_2021.SynchronizeTestsTasks).Do(); - } -} diff --git a/src/Visual_DVM_2021/Passes/PassCode_2021.java b/src/Visual_DVM_2021/Passes/PassCode_2021.java index 00016ed7..a377ae97 100644 --- a/src/Visual_DVM_2021/Passes/PassCode_2021.java +++ b/src/Visual_DVM_2021/Passes/PassCode_2021.java @@ -247,7 +247,6 @@ public enum PassCode_2021 { //- PickCompilerEnvironmentsForTesting, AddDVMParameterForTesting, - DeleteSelectedTestsRunTasks, //- RefreshDVMTests, PauseTesting, @@ -470,8 +469,6 @@ public enum PassCode_2021 { return "Возобновить тестирование"; case RefreshDVMTests: return "Обновить DVM тесты"; - case DeleteSelectedTestsRunTasks: - return "Удалить отмеченные тестовые задачи"; case AddDVMParameterForTesting: return "Добавить параметр DVM системы для группы"; case PickCompilerEnvironmentsForTesting: diff --git a/src/Visual_DVM_2021/Passes/TestingSystemPass.java b/src/Visual_DVM_2021/Passes/TestingSystemPass.java index 2b557d83..f3ebea20 100644 --- a/src/Visual_DVM_2021/Passes/TestingSystemPass.java +++ b/src/Visual_DVM_2021/Passes/TestingSystemPass.java @@ -1,6 +1,11 @@ package Visual_DVM_2021.Passes; +import Common.Current; +import Common.Database.DBObject; import Common.Global; +import Repository.Server.ServerCode; +import Repository.Server.ServerExchangeUnit_2021; import TestingSystem.TestingServer; +import javafx.util.Pair; public abstract class TestingSystemPass extends RepositoryPass { public TestingSystemPass() { super(Global.testingServer); @@ -9,4 +14,8 @@ public abstract class TestingSystemPass extends RepositoryPass(object.getClass(), object.getPK()))); + } }