From 7fb95b95b014eea14b33fd703777e17de611df65 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Fri, 10 Jun 2022 14:46:58 +0200
Subject: [PATCH] move creation of mod-data postprocessing to separate method

---
 .../OutputData/ModalDataContainer.cs          | 27 ++++++++++++-------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
index ca208b405b..2a43cc6435 100644
--- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
@@ -159,19 +159,14 @@ namespace TUGraz.VectoCore.OutputData
 			Data = new ModalResults(false);
 			CurrentRow = Data.NewRow();
 
+			PostProcessingCorrection = GetModDataPostprocessor(runData);
+
 			if (runData.JobType == VectoSimulationJobType.BatteryElectricVehicle ||
 				runData.JobType == VectoSimulationJobType.IEPC_E) {
-				PostProcessingCorrection = new BatteryElectricPostprocessingCorrection();
 				return;
 			}
-
-			var isSerialHybrid = runData.JobType == VectoSimulationJobType.IEPC_S ||
-								runData.JobType == VectoSimulationJobType.SerialHybridVehicle;
-			PostProcessingCorrection = isSerialHybrid
-				? new SerialHybridModalDataPostprocessingCorrection()
-				: new ModalDataPostprocessingCorrection();
-
-			var multipleEngineModes = runData.EngineData?.MultipleEngineFuelModes ?? false;
+			
+            var multipleEngineModes = runData.EngineData?.MultipleEngineFuelModes ?? false;
 			var fuels = runData.EngineData?.Fuels ?? new List<CombustionEngineFuelData>();
 			foreach (var fuel in fuels) {
 				var entry = fuel.FuelData;
@@ -203,6 +198,20 @@ namespace TUGraz.VectoCore.OutputData
 
 		}
 
+		protected IModalDataPostProcessor GetModDataPostprocessor(VectoRunData runData)
+		{
+			switch (runData.JobType) {
+				case VectoSimulationJobType.BatteryElectricVehicle:
+				case VectoSimulationJobType.IEPC_E:
+					return new BatteryElectricPostprocessingCorrection();
+				case VectoSimulationJobType.IEPC_S:
+				case VectoSimulationJobType.SerialHybridVehicle:
+					return new SerialHybridModalDataPostprocessingCorrection();
+				default:
+					return new ModalDataPostprocessingCorrection();
+			}
+		}
+
 		public int JobRunId => _runData.JobRunId;
 
 		public string RunName => _runData.JobName;
-- 
GitLab