From 71982738984ff1ee180791b0e88bc95087d1ecca Mon Sep 17 00:00:00 2001
From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at>
Date: Wed, 24 Mar 2021 16:01:09 +0100
Subject: [PATCH] replaced state of completion with declaration type enum in
 xml reader and in related tests

---
 VECTO/Input Files/Engine.vb                   |  2 +-
 VECTO/Input Files/Gearbox.vb                  |  2 +-
 VECTO/Input Files/MockVehicleInputData.vb     |  2 +-
 VECTO/Input Files/Vehicle.vb                  |  2 +-
 .../InputData/DeclarationInputData.cs         | 27 ++++++++-----------
 .../Resources/XMLNames.Designer.cs            | 18 ++++++-------
 .../VectoCommon/Resources/XMLNames.resx       |  6 ++---
 .../FileIO/JSON/JSONComponentInputData.cs     |  4 +--
 .../InputData/FileIO/JSON/JSONVehicleData.cs  |  2 +-
 .../XMLDeclarationVehicleDataProvider.cs      | 16 ++++++-----
 .../XMLEngineeringVehicleDataProvider.cs      |  2 +-
 .../Utils/MockDeclarationVehicleInputData.cs  |  4 +--
 .../XML/XMLMultistageBusDataTest.cs           |  6 ++---
 .../XML/XMLMultistageBusInputDataTest.cs      |  5 ++--
 14 files changed, 47 insertions(+), 51 deletions(-)

diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb
index a2b99c34a4..7ef5bced6c 100644
--- a/VECTO/Input Files/Engine.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -666,7 +666,7 @@ Public Class DummyVehicle
 	Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width
 	Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight
 	Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology
-	Public ReadOnly Property StateOfCompletion As StateOfCompletion Implements IVehicleDeclarationInputData.StateOfCompletion
+	Public ReadOnly Property DeclarationType As DeclarationType Implements IVehicleDeclarationInputData.DeclarationType
 
 	Public ReadOnly Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components
 		Get
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index 740e696585..4d654e65b6 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -852,7 +852,7 @@ Public Class MockEngineeringVehicle
     Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width
     Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight
     Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology
-    Public ReadOnly Property StateOfCompletion As StateOfCompletion Implements IVehicleDeclarationInputData.StateOfCompletion
+    Public ReadOnly Property DeclarationType As DeclarationType Implements IVehicleDeclarationInputData.DeclarationType
     Public Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components
     Public ReadOnly Property XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource
 
diff --git a/VECTO/Input Files/MockVehicleInputData.vb b/VECTO/Input Files/MockVehicleInputData.vb
index bde52e8f10..16f06e388e 100644
--- a/VECTO/Input Files/MockVehicleInputData.vb	
+++ b/VECTO/Input Files/MockVehicleInputData.vb	
@@ -52,7 +52,7 @@ Public Class MockVehicleInputData
     Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width
     Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight
     Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology
-    Public ReadOnly Property StateOfCompletion As StateOfCompletion Implements IVehicleDeclarationInputData.StateOfCompletion
+    Public ReadOnly Property DeclarationType As DeclarationType Implements IVehicleDeclarationInputData.DeclarationType
     Public Property Components As IVehicleComponentsDeclaration Implements IVehicleDeclarationInputData.Components
     Public ReadOnly Property XMLSource As XmlNode Implements IVehicleDeclarationInputData.XMLSource
 End Class
\ No newline at end of file
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index 9c47a3f07e..fdaae09a92 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -441,7 +441,7 @@ Public Class Vehicle
 	Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width
 	Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight
 	Public ReadOnly Property DoorDriveTechnology As ConsumerTechnology? Implements IVehicleDeclarationInputData.DoorDriveTechnology
-	Public ReadOnly Property StateOfCompletion As StateOfCompletion Implements IVehicleDeclarationInputData.StateOfCompletion
+	Public ReadOnly Property DeclarationType As DeclarationType Implements IVehicleDeclarationInputData.DeclarationType
 
 	Public ReadOnly Property IVehicleEngineeringInputData_Components As IVehicleComponentsEngineering Implements IVehicleEngineeringInputData.Components
 		Get
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 354b0a60cc..2a5209d149 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -190,7 +190,7 @@ namespace TUGraz.VectoCommon.InputData
 
 		ConsumerTechnology? DoorDriveTechnology { get; }
 
-		StateOfCompletion StateOfCompletion { get; }
+		DeclarationType DeclarationType { get; }
 
 		// components
 
@@ -940,30 +940,25 @@ namespace TUGraz.VectoCommon.InputData
 
 	}
 
-	public enum StateOfCompletion
+	public enum DeclarationType
 	{
-		incomplete,
-		complete,
-		completed
+		interim,
+		final
 	}
 
-
-	public static class StateOfCompletionHelper
+	public static class DeclarationTypeHelper
 	{
-		public static StateOfCompletion Parse(string parse)
+		public static DeclarationType Parse(string parse)
 		{
-			switch (parse)
+			switch (parse) 
 			{
-				case nameof(StateOfCompletion.incomplete):
-					return StateOfCompletion.incomplete;
-				case nameof(StateOfCompletion.complete):
-					return StateOfCompletion.complete;
-				case nameof(StateOfCompletion.completed):
-					return StateOfCompletion.completed;
+				case nameof(DeclarationType.interim):
+					return DeclarationType.interim;
+				case nameof(DeclarationType.final):
+					return DeclarationType.final;
 				default:
 					throw new ArgumentOutOfRangeException();
 			}
 		}
 	}
-
 }
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index 8735263288..a1c7ab7cb9 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -528,6 +528,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to DeclarationType.
+        /// </summary>
+        public static string Bus_DeclarationType {
+            get {
+                return ResourceManager.GetString("Bus_DeclarationType", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to DoubleGlazing.
         /// </summary>
@@ -780,15 +789,6 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to StateOfCompletion.
-        /// </summary>
-        public static string Bus_StateOfCompletion {
-            get {
-                return ResourceManager.GetString("Bus_StateOfCompletion", resourceCulture);
-            }
-        }
-        
         /// <summary>
         ///   Looks up a localized string similar to Status.
         /// </summary>
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index d86198efe3..a967d2e637 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1395,9 +1395,6 @@
   <data name="Bus_NumberPassengersUpperDeck" xml:space="preserve">
     <value>NumberPassengersUpperDeck</value>
   </data>
-  <data name="Bus_StateOfCompletion" xml:space="preserve">
-    <value>StateOfCompletion</value>
-  </data>
   <data name="Bus_AirElectricHeater" xml:space="preserve">
     <value>AirElectricHeater</value>
   </data>
@@ -1431,4 +1428,7 @@
   <data name="ManufacturingStage_StageCount" xml:space="preserve">
     <value>stageCount</value>
   </data>
+  <data name="Bus_DeclarationType" xml:space="preserve">
+    <value>DeclarationType</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
index f2510f89fb..1ee0e73302 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
@@ -340,8 +340,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get { return VehicleData.DoorDriveTechnology; }
 		}
 
-		public StateOfCompletion StateOfCompletion { get; }
-
+		public DeclarationType DeclarationType { get; }
+		
 		IVehicleComponentsEngineering IVehicleEngineeringInputData.Components
 		{
 			get { return this; }
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index a38f5a5ab9..f7449ff948 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -320,8 +320,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual Meter EntranceHeight { get { return null; } }
 		public virtual ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } }
+		public virtual DeclarationType DeclarationType { get; }
 
-		public virtual StateOfCompletion StateOfCompletion { get; }
 
 		IVehicleComponentsEngineering IVehicleEngineeringInputData.Components
 		{
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 612adc0efc..b731e1d9a3 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -329,8 +329,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		}
 
 		public virtual ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } }
-		
-		public virtual StateOfCompletion StateOfCompletion { get; }
+		public virtual DeclarationType DeclarationType { get; }
+
 
 		public virtual IVehicleComponentsDeclaration Components
 		{
@@ -1038,7 +1038,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get { return ConsumerTechnology.Unknown; }
 		}
 
-		public StateOfCompletion StateOfCompletion { get; }
+		public virtual DeclarationType DeclarationType { get; }
 
 
 		public IVehicleComponentsDeclaration Components
@@ -1299,6 +1299,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			}
 		}
 
+		public override DeclarationType DeclarationType
+		{
+			get { return DeclarationTypeHelper.Parse(GetString(XMLNames.Bus_DeclarationType)); }
+		}
+
 
 		public override XmlElement ADASNode
 		{
@@ -1346,10 +1351,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get { return null; }
 		}
 
-		public override StateOfCompletion StateOfCompletion
-		{
-			get { return StateOfCompletionHelper.Parse(GetString(XMLNames.Bus_StateOfCompletion)); }
-		}
+
 
 
 		#region Overrides of AbstractXMLResource
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
index d42c747e5e..bb40f7e0cb 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
@@ -181,7 +181,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider
 		public virtual Meter Width { get { return null; } }
 		public virtual Meter EntranceHeight { get { return null; } }
 		public ConsumerTechnology? DoorDriveTechnology { get { return ConsumerTechnology.Unknown; } }
-		public virtual StateOfCompletion StateOfCompletion { get; }
+		public virtual DeclarationType DeclarationType { get; }
 
 		IVehicleComponentsDeclaration IVehicleDeclarationInputData.Components
 		{
diff --git a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
index f4f9cd1f92..3c6c316592 100644
--- a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
@@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.Tests.Utils {
 		public Meter Width { get; set; }
 		public Meter EntranceHeight { get; }
 		public ConsumerTechnology? DoorDriveTechnology { get; }
-		public StateOfCompletion StateOfCompletion { get; }
+		public DeclarationType DeclarationType { get; }
 		public IVehicleComponentsDeclaration Components { get { return this; } }
 		public XmlNode XMLSource { get; }
 
@@ -113,7 +113,7 @@ namespace TUGraz.VectoCore.Tests.Utils {
 		public Meter Width { get; set; }
 		public Meter EntranceHeight { get; }
 		public ConsumerTechnology? DoorDriveTechnology { get; }
-		public StateOfCompletion StateOfCompletion { get; }
+		public DeclarationType DeclarationType { get; }
 		public Watt MaxNetPower2 { get; }
 		public RegistrationClass? RegisteredClass { get; set; }
 		public int? NumberOfPassengersUpperDeck { get; set; }
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
index 330569e5b7..1977b6b814 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
@@ -561,7 +561,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual("Intermediate Manufacturer Address 1", vehicleData.ManufacturerAddress);
 			Assert.AreEqual("VEH-1234567890", vehicleData.VIN);
 			Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), vehicleData.Date);
-			Assert.AreEqual(StateOfCompletion.incomplete, vehicleData.StateOfCompletion);
+			Assert.AreEqual(DeclarationType.interim, vehicleData.DeclarationType);
 			TestEmptyInterimStageInputFields(vehicleData);
 		}
 
@@ -611,7 +611,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual("VEH-2234567890", vehicleData.VIN);
 			Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicleData.Date);
 			Assert.AreEqual(false, vehicleData.AirdragModifiedMultistage);
-			Assert.AreEqual(StateOfCompletion.complete, vehicleData.StateOfCompletion);
+			Assert.AreEqual(DeclarationType.final, vehicleData.DeclarationType);
 
 			Assert.AreEqual(true, vehicleData.ADAS.EngineStopStart);
 			Assert.AreEqual(EcoRollType.WithEngineStop, vehicleData.ADAS.EcoRoll);
@@ -712,7 +712,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(2000.SI<Meter>(), vehicleData.Width);
 			Assert.AreEqual(2050.SI<Meter>(), vehicleData.EntranceHeight);
 			Assert.AreEqual(ConsumerTechnology.Pneumatically, vehicleData.DoorDriveTechnology);
-			Assert.AreEqual(StateOfCompletion.incomplete, vehicleData.StateOfCompletion);
+			Assert.AreEqual(DeclarationType.final, vehicleData.DeclarationType);
 
 			Assert.AreEqual(false, vehicleData.ADAS.EngineStopStart);
 			Assert.AreEqual(EcoRollType.WithoutEngineStop, vehicleData.ADAS.EcoRoll);
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
index ef53b49fc6..76f1a3e5a3 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
@@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(2500, vehicle.Width.Value());
 			Assert.AreEqual(2000, vehicle.EntranceHeight.Value());
 			Assert.AreEqual(ConsumerTechnology.Electrically, vehicle.DoorDriveTechnology);
-			Assert.AreEqual(StateOfCompletion.incomplete, vehicle.StateOfCompletion);
+			Assert.AreEqual(DeclarationType.interim, vehicle.DeclarationType);
 
 			TestADASInput(vehicle);
 			TestComponents(vehicle.Components);
@@ -157,7 +157,6 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual("Some Manufacturer Address 3", vehicle.ManufacturerAddress);
 			Assert.AreEqual("VEH-1234567891", vehicle.VIN);
 			Assert.AreEqual(DateTime.Parse("2021-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date);
-			Assert.AreEqual(StateOfCompletion.incomplete, vehicle.StateOfCompletion);
 
 			Assert.AreEqual(null, vehicle.Model);
 			Assert.AreEqual(null, vehicle.LegislativeClass);
@@ -185,7 +184,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual("Some Manufacturer Address 4", vehicle.ManufacturerAddress);
 			Assert.AreEqual("VEH-1234567894", vehicle.VIN);
 			Assert.AreEqual(DateTime.Parse("2022-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date);
-			Assert.AreEqual(StateOfCompletion.incomplete, vehicle.StateOfCompletion);
+			Assert.AreEqual(DeclarationType.interim, vehicle.DeclarationType);
 
 			Assert.AreEqual(null, vehicle.Model);
 			Assert.AreEqual(null, vehicle.LegislativeClass);
-- 
GitLab