From ca0d91ecc3a1db57154f72864f8c16fc8a836731 Mon Sep 17 00:00:00 2001 From: "harald.martini@student.tugraz.at" <harald.martini@student.tugraz.at> Date: Fri, 9 Jul 2021 12:04:59 +0200 Subject: [PATCH] Extended IsInputDataComplete to support Exempted Vehicles --- .../Common/AdditionalJobInfoViewModel.cs | 12 +++---- .../MultistageJobViewModel_v0_1.cs | 4 +-- Vecto3GUI2020Test/ViewModelTests/VIFTests.cs | 18 ---------- .../XMLDeclarationMultistageInputReader.cs | 33 +++++++++++++++++++ 4 files changed, 41 insertions(+), 26 deletions(-) diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs index bcf3b7a3d7..0722eb5f47 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs @@ -57,12 +57,12 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common if (_parent.CanBeSimulated) { return; } - - //if (_parent.ManufacturingStageViewModel.VehicleViewModel.VehicleDeclarationType == - // VehicleDeclarationType.interim) { - // ErrorInfo = "Only Jobs with the declaration type \"final\" can be simulated"; - // return; - //} + + if(_parent.JobInputData?.ConsolidateManufacturingStage?.Vehicle?.VehicleDeclarationType != + VehicleDeclarationType.final && !_parent.Exempted) + { + ErrorInfo = "Job is not declared as \"final\""; + } if (_parent.InvalidEntries != null && _parent.InvalidEntries.Count != 0) { diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index 45016e49d3..0ba498ff4d 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -306,8 +306,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { get { - return InputComplete && _inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleDeclarationType == - VehicleDeclarationType.final; + return (InputComplete && _inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleDeclarationType == + VehicleDeclarationType.final) || (InputComplete && Exempted); } set => throw new NotImplementedException(); } diff --git a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs index 0046df4f3b..3f7f27aaec 100644 --- a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs @@ -153,24 +153,6 @@ namespace Vecto3GUI2020Test.ViewModelTests } - [Test] - public void CreateVifWrongDecimal() - { - var multistagevm = loadFile(primary_vehicle_only).MultiStageJobViewModel as MultiStageJobViewModel_v0_1; - - //Set Necessary Fields - var vehicle = - multistagevm.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8; - - - vehicle.ManufacturerAddress = "Address"; - vehicle.Manufacturer = "Manufacturer"; - vehicle.VIN = "VIN12345678"; - vehicle.Model = "Model"; - - //vehicle.MultistageAuxiliariesViewModel. - } - [Test] public void TestAirdragLoadAndSave() diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs index 8d25a42fe6..d93b4915ab 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs @@ -658,8 +658,41 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return validAirdragEntries; } + private bool IsInputDataCompleteExempted(VectoSimulationJobType jobType, bool fullCheck) + { + if (fullCheck) + { + //use Binary AND to execute all Statements and gather information about missing parameters. + return InputComplete(Model, nameof(Model)) + & InputComplete(LegislativeClass, nameof(LegislativeClass)) + & InputComplete(CurbMassChassis, nameof(CurbMassChassis)) + & InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating)) + & InputComplete(RegisteredClass, nameof(RegisteredClass)) + & InputComplete(NumberPassengerSeatsLowerDeck, nameof(NumberPassengerSeatsLowerDeck)) + & InputComplete(NumberPassengerSeatsUpperDeck, nameof(NumberPassengerSeatsUpperDeck)) + & InputComplete(VehicleCode, nameof(VehicleCode)) + & InputComplete(LowEntry, nameof(LowEntry)) + & InputComplete(Height, nameof(Height)); + } + + + return InputComplete(Model, nameof(Model)) + && InputComplete(LegislativeClass, nameof(LegislativeClass)) + && InputComplete(CurbMassChassis, nameof(CurbMassChassis)) + && InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating)) + && InputComplete(RegisteredClass, nameof(RegisteredClass)) + && InputComplete(NumberPassengerSeatsLowerDeck, nameof(NumberPassengerSeatsLowerDeck)) + && InputComplete(NumberPassengerSeatsUpperDeck, nameof(NumberPassengerSeatsUpperDeck)) + && InputComplete(VehicleCode, nameof(VehicleCode)) + && InputComplete(LowEntry, nameof(LowEntry)) && InputComplete(Height, nameof(Height)); + } + + protected override bool IsInputDataCompleteTemplate(VectoSimulationJobType jobType, bool fullCheck) { + if (ExemptedVehicle) { + return IsInputDataCompleteExempted(jobType, fullCheck); + } GetADAS(); GetComponents(); if (fullCheck) { -- GitLab