From d6db1c8814f687d4d900e3420e6cd06409f3cc94 Mon Sep 17 00:00:00 2001
From: "harald.martini@student.tugraz.at" <harald.martini@student.tugraz.at>
Date: Mon, 12 Apr 2021 11:40:20 +0200
Subject: [PATCH] Added TransferredAirdragArea and AirdragArea_0 to
 IAirdragDeclarationInputData interface

---
 .../Vehicle/Components/AirDragViewModel.cs    |  2 ++
 .../MultistageAirdragViewModel.cs             |  2 ++
 .../InputData/DeclarationInputData.cs         |  3 +++
 .../Resources/XMLNames.Designer.cs            |  9 +++++++++
 .../VectoCommon/Resources/XMLNames.resx       |  3 +++
 VectoCommon/VectoCommon/VectoCommon.csproj    |  4 ++--
 .../InputData/FileIO/JSON/JSONSubComponent.cs | 16 +++++++++++++++
 .../XMLDeclarationAirdragDataProvider.cs      | 20 +++++++++++++++++++
 .../XMLDeclarationMultistageInputReader.cs    | 18 +++++++++++++++++
 .../XMLEngineeringAirdragDataProvider.cs      |  2 +-
 10 files changed, 76 insertions(+), 3 deletions(-)

diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs
index 7be3d7fc23..b1d08176a2 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/AirDragViewModel.cs
@@ -101,6 +101,8 @@ namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components
 
 
 		public virtual SquareMeter AirDragArea {get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+		public SquareMeter TransferredAirDragArea { get => throw new NotImplementedException(); }
+		public SquareMeter AirDragArea_0 { get => throw new NotImplementedException(); }
 
 		#endregion
 	}
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs
index d462e9f250..b38a051acd 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs
@@ -115,5 +115,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		public DigestData DigestValue => _digestValue;
 
 		public SquareMeter AirDragArea => _airDragArea;
+		public SquareMeter TransferredAirDragArea { get; }
+		public SquareMeter AirDragArea_0 { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 3fd317471c..2fe560df45 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -372,6 +372,9 @@ namespace TUGraz.VectoCommon.InputData
 		/// cf. VECTO Input Parameters.xlsx
 		/// </summary>
 		SquareMeter AirDragArea { get; } // without trailer
+		SquareMeter TransferredAirDragArea { get; } // P246
+
+		SquareMeter AirDragArea_0 { get; } // P245
 	}
 
 	public interface IRetarderInputData : IComponentInputData
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index 2ef3211ecd..0abfa9c5d9 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -105,6 +105,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to TransferredCdxA.
+        /// </summary>
+        public static string AirDragArea_TransferredCdxA {
+            get {
+                return ResourceManager.GetString("AirDragArea_TransferredCdxA", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Efficiency.
         /// </summary>
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index 34634b35d3..e139ca801e 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1488,4 +1488,7 @@
   <data name="VehicleAttr_VehicleDeclarationType" xml:space="preserve">
     <value>VehicleDeclarationType</value>
   </data>
+  <data name="AirDragArea_TransferredCdxA" xml:space="preserve">
+    <value>TransferredCdxA</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj
index 9913ddd696..9f67d179e5 100644
--- a/VectoCommon/VectoCommon/VectoCommon.csproj
+++ b/VectoCommon/VectoCommon/VectoCommon.csproj
@@ -128,9 +128,9 @@
       <DesignTime>True</DesignTime>
     </Compile>
     <Compile Include="Resources\XMLNames.Designer.cs">
-      <DependentUpon>XMLNames.resx</DependentUpon>
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
+      <DependentUpon>XMLNames.resx</DependentUpon>
     </Compile>
     <Compile Include="Utils\DoubleExtensionMethods.cs" />
     <Compile Include="Utils\EnumerableExtensionMethods.cs" />
@@ -154,8 +154,8 @@
   <ItemGroup>
     <EmbeddedResource Include="Resources\XMLNames.resx">
       <Generator>PublicResXFileCodeGenerator</Generator>
-      <LastGenOutput>XMLNames.Designer.cs</LastGenOutput>
       <SubType>Designer</SubType>
+      <LastGenOutput>XMLNames.Designer.cs</LastGenOutput>
     </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
index 3de7b5a374..0e47c76253 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
@@ -273,6 +273,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			}
 		}
 
+		public SquareMeter TransferredAirDragArea
+		{
+			get
+			{
+				return AirDragArea;
+			}
+		}
+
+		public SquareMeter AirDragArea_0
+		{
+			get
+			{
+				return AirDragArea;
+			}
+		}
+
 		public virtual CrossWindCorrectionMode CrossWindCorrectionMode
 		{
 			get { return CrossWindCorrectionModeHelper.Parse(Body.GetEx<string>("CdCorrMode")); }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs
index 9e020e820b..3dffc6369b 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs
@@ -34,6 +34,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			}
 		}
 
+		public virtual SquareMeter TransferredAirDragArea
+		{
+			get
+			{
+				return ElementExists(XMLNames.AirDrag_TransferredCDxA) 
+					? GetDouble(XMLNames.AirDrag_TransferredCDxA).SI<SquareMeter>() 
+					: null;
+			}
+		}
+
+		public virtual SquareMeter AirDragArea_0
+		{
+			get
+			{
+				return ElementExists(XMLNames.AirDrag_CdxA_0)
+					? GetDouble(XMLNames.AirDrag_CdxA_0).SI<SquareMeter>()
+					: null;
+			}
+		}
+
 		public override CertificationMethod CertificationMethod
 		{
 			get { return CertificationMethod.Measured; }
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 097c8f28bc..8daf2a46e7 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
@@ -12,6 +12,7 @@ using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
@@ -875,6 +876,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		{
 			get { return AirdragEntry?.AirDragArea; }
 		}
+
+		public SquareMeter TransferredAirDragArea
+		{
+			get
+			{
+				return AirdragEntry?.TransferredAirDragArea;
+			}
+		}
+
+		public SquareMeter AirDragArea_0
+		{
+			get
+			{
+				return AirdragEntry.AirDragArea_0;
+			}
+		}
+
 		public DataSource DataSource
 		{
 			get { return AirdragEntry?.DataSource; }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs
index c7ae92bac6..6f75b37917 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs
@@ -69,7 +69,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider
 			get { return AirDragArea; }
 		}
 
-		public virtual SquareMeter AirdragArea_0
+		public virtual SquareMeter AirDragArea_0
 		{
 			get { return AirDragArea; }
 		}
-- 
GitLab