From 9a052e3b5520c1b9184a1ea1a726c17575e65618 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Tue, 26 Apr 2016 15:28:19 +0200
Subject: [PATCH] refactoring bus auxiliaries input provider

---
 .../InputData/EngineeringInputData.cs         | 14 +++++-----
 .../InputData/FileIO/JSON/JSONInputData.cs    | 27 +++++++++++++++++++
 .../InputData/FileIO/JSON/JSONVehicleData.cs  | 19 -------------
 .../EngineeringDataAdapter.cs                 |  8 +++---
 .../EngineeringModeVectoRunDataFactory.cs     |  2 +-
 .../Simulation/Impl/PowertrainBuilder.cs      |  8 +++---
 6 files changed, 43 insertions(+), 35 deletions(-)

diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
index 2e65ca2d4f..e5f0174b31 100644
--- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
@@ -92,13 +92,6 @@ namespace TUGraz.VectoCommon.InputData
 		/// cf. VECTO Input Parameters.xlsx
 		/// </summary>
 		DataTable CrosswindCorrectionMap { get; }
-
-		// Advanced Auxiliaries
-		AuxiliaryModel AuxiliaryAssembly { get; }
-
-		string AuxiliaryVersion { get; }
-
-		string AdvancedAuxiliaryFilePath { get; }
 	}
 
 
@@ -196,6 +189,13 @@ namespace TUGraz.VectoCommon.InputData
 	public interface IAuxiliariesEngineeringInputData : IAuxiliariesDeclarationInputData
 	{
 		new IList<IAuxiliaryEngineeringInputData> Auxiliaries { get; }
+
+		// Advanced Auxiliaries
+		AuxiliaryModel AuxiliaryAssembly { get; }
+
+		string AuxiliaryVersion { get; }
+
+		string AdvancedAuxiliaryFilePath { get; }
 	}
 
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index 2b8aeda12e..e8f2d0ed42 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -525,5 +525,32 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			}
 			return retVal;
 		}
+
+		#region AdvancedAuxiliaries
+
+		public AuxiliaryModel AuxiliaryAssembly
+		{
+			get
+			{
+				return AuxiliaryModelHelper.Parse(Body["AuxiliaryAssembly"] == null ? "" : Body["AuxiliaryAssembly"].ToString());
+			}
+		}
+
+		public string AuxiliaryVersion
+		{
+			get { return Body["AuxiliaryVersion"] != null ? Body["AuxiliaryVersion"].Value<string>() : "<CLASSIC>"; }
+		}
+
+		public string AdvancedAuxiliaryFilePath
+		{
+			get
+			{
+				return Body["AdvancedAuxiliaryFilePath"] != null
+					? Path.Combine(Path.GetFullPath(BasePath), Body["AdvancedAuxiliaryFilePath"].Value<string>())
+					: "";
+			}
+		}
+
+		#endregion
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index 77eba9f429..0f0b929997 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -177,25 +177,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		#endregion
 
-		#region AdvancedAuxiliaries
-
-		public AuxiliaryModel AuxiliaryAssembly
-		{
-			get { return AuxiliaryModelHelper.Parse(Body["AuxiliaryAssembly"] == null ? "" : Body["AuxiliaryAssembly"].ToString()); }
-		}
-
-		public string AuxiliaryVersion
-		{
-			get { return Body["AuxiliaryVersion"] != null ? Body["AuxiliaryVersion"].Value<string>() : "<CLASSIC>"; }
-		}
-
-		public string AdvancedAuxiliaryFilePath
-		{
-			get { return Body["AdvancedAuxiliaryFilePath"] != null ? Body["AdvancedAuxiliaryFilePath"].Value<string>() : ""; }
-		}
-
-		#endregion
-
 		public string Vendor
 		{
 			get { return "N/A"; }
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
index 480caa8f3e..6e139e7693 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
@@ -228,12 +228,12 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 			return SetCommonRetarderData(retarder, vehicle);
 		}
 
-		public AdvancedAuxData CreateAdvancedAuxData(IVehicleEngineeringInputData vehicleInputData)
+		public AdvancedAuxData CreateAdvancedAuxData(IAuxiliariesEngineeringInputData auxInputData)
 		{
 			return new AdvancedAuxData() {
-				AdvancedAuxiliaryFilePath = vehicleInputData.AdvancedAuxiliaryFilePath,
-				AuxiliaryAssembly = vehicleInputData.AuxiliaryAssembly,
-				AuxiliaryVersion = vehicleInputData.AuxiliaryVersion
+				AdvancedAuxiliaryFilePath = auxInputData.AdvancedAuxiliaryFilePath,
+				AuxiliaryAssembly = auxInputData.AuxiliaryAssembly,
+				AuxiliaryVersion = auxInputData.AuxiliaryVersion
 			};
 		}
 	}
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index e6f9433635..1ebfef8a52 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				VehicleData = dao.CreateVehicleData(vehicleInputData),
 				DriverData = driver,
 				Aux = dao.CreateAuxiliaryData(InputDataProvider.AuxiliaryInputData()),
-				AdvancedAux = dao.CreateAdvancedAuxData(InputDataProvider.VehicleInputData),
+				AdvancedAux = dao.CreateAdvancedAuxData(InputDataProvider.AuxiliaryInputData()),
 				Retarder = dao.CreateRetarderData(InputDataProvider.RetarderInputData, InputDataProvider.VehicleInputData),
 				Cycle = DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired),
 				IsEngineOnly = InputDataProvider.JobInputData().EngineOnlyMode
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 2a34598bca..8093d54182 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -290,11 +290,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			AddComponent(tmp, engine);
 
 			// connect aux --> engine
-			if (data.Aux != null) {
-				engine.Connect(CreateAuxiliaries(data, container).Port());
+			if (data.AdvancedAux != null && data.AdvancedAux.AuxiliaryAssembly == AuxiliaryModel.Advanced) {
+				engine.Connect(CreateBusAuxiliaries(data, container).Port());
 			} else {
-				if (data.AdvancedAux.AuxiliaryAssembly == AuxiliaryModel.Advanced) {
-					engine.Connect(CreateBusAuxiliaries(data, container).Port());
+				if (data.Aux != null) {
+					engine.Connect(CreateAuxiliaries(data, container).Port());
 				}
 			}
 
-- 
GitLab