From 12d744d610c7aab499951cfff75616e928139f4e Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Tue, 28 Apr 2020 17:23:55 +0200
Subject: [PATCH] fix: actual engine correction factor was not set for
 completed vehicle

---
 .../DeclarationDataAdapterCompletedBusGeneric.cs      |  4 ++--
 .../DeclarationModeCompletedBusVectoRunDataFactory.cs |  6 +++---
 .../Models/GenericModelData/GenericBusEngineData.cs   | 11 ++++++-----
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs
index 360c3e4751..5d25d746ac 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs
@@ -39,9 +39,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 		// only powertrain components are different
 
 		
-		public CombustionEngineData CreateEngineData(IVehicleDeclarationInputData primaryVehicle, int modeIdx)
+		public CombustionEngineData CreateEngineData(IVehicleDeclarationInputData primaryVehicle, int modeIdx, Mission mission)
 		{
-			return GenericBusEngineData.Instance.CreateGenericBusEngineData(primaryVehicle, modeIdx);
+			return GenericBusEngineData.Instance.CreateGenericBusEngineData(primaryVehicle, modeIdx, mission);
 		}
 
 		#region Overrides of DeclarationDataAdapterHeavyLorry
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
index 5beac423de..e17f69498d 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
@@ -113,7 +113,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 																_segmentCompletedBus.Missions.First().Loadings.First());
 			tmpVehicleData.VehicleCategory = VehicleCategory.GenericBusVehicle;
 
-			var combustionEngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, 0);
+			var combustionEngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, 0, _segmentCompletedBus.Missions.First());
 
 			_axlegearData = DataAdapterGeneric.CreateAxleGearData(PrimaryVehicle.Components.AxleGearInputData);
 
@@ -253,7 +253,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, _segmentCompletedBus, 
 					mission, loading),
 				AirdragData = DataAdapterSpecific.CreateAirdragData(CompletedVehicle, mission),
-				EngineData = DataAdapterSpecific.CreateEngineData(PrimaryVehicle, modeIdx),
+				EngineData = DataAdapterSpecific.CreateEngineData(PrimaryVehicle, modeIdx, mission),
 				GearboxData = _gearboxData,
 				AxleGearData = _axlegearData,
 				AngledriveData = _angledriveData,
@@ -298,7 +298,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				Loading = loading.Key,
 				VehicleData = DataAdapterGeneric.CreateVehicleData(PrimaryVehicle, primarySegment, mission, loading),
 				AirdragData = DataAdapterGeneric.CreateAirdragData(null, mission, new Segment()),
-				EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx),
+				EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx, mission),
 				GearboxData = _gearboxData,
 				AxleGearData = _axlegearData,
 				AngledriveData = _angledriveData,
diff --git a/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs
index fe5ee47098..903d2f097b 100644
--- a/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs
+++ b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			
 		}
 
-		public CombustionEngineData CreateGenericBusEngineData(IVehicleDeclarationInputData primaryVehicle, int modeIdx)
+		public CombustionEngineData CreateGenericBusEngineData(IVehicleDeclarationInputData primaryVehicle, int modeIdx, Mission mission)
 		{
 			if (modeIdx >= primaryVehicle.Components.EngineInputData.EngineModes.Count) {
 				throw new VectoException(
@@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			engine.FullLoadCurves = fullLoadCurves;
 			
 
-			var fuel = GetCombustionEngineFuelData(primaryVehicle.Components.EngineInputData.EngineModes[modeIdx], fullLoadCurves[0]);
+			var fuel = GetCombustionEngineFuelData(primaryVehicle.Components.EngineInputData.EngineModes[modeIdx], fullLoadCurves[0], mission);
 			
 			
 
@@ -126,8 +126,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			return UseDieselFuel(engineMode) ? DieselCIFactors : PIFactors;
 		}
 
-		private CombustionEngineFuelData GetCombustionEngineFuelData(IEngineModeDeclarationInputData engineMode,
-			EngineFullLoadCurve fullLoadCurve)
+		private CombustionEngineFuelData GetCombustionEngineFuelData(IEngineModeDeclarationInputData engineMode, EngineFullLoadCurve fullLoadCurve, Mission mission)
 		{
 			var ressourceId = GetEngineRessourceId(engineMode);
 
@@ -171,7 +170,9 @@ namespace TUGraz.VectoCore.Models.Declaration
 				ConsumptionMap = fcMap,
 				FuelData = GetFuelData(engineMode)
 			};
-
+			fuel.FuelConsumptionCorrectionFactor = DeclarationData.WHTCCorrection.Lookup(
+														mission.MissionType.GetNonEMSMissionType(), fuel.WHTCRural, fuel.WHTCUrban,
+														fuel.WHTCMotorway) * fuel.ColdHotCorrectionFactor * fuel.CorrectionFactorRegPer;
 
 			return fuel;
 		}
-- 
GitLab