From e46563630af786a898410a30715e9555dd1f8065 Mon Sep 17 00:00:00 2001
From: Stefanos Doumpoulakis <dubulak@gmail.com>
Date: Wed, 14 Sep 2022 17:53:35 +0300
Subject: [PATCH] NCV input data in job file are now required

---
 .../InputData/FileIO/JSON/JSONInputData.cs         | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index 6bae0a0c11..634968663a 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -893,7 +893,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				var fuelNCVs = new List<IFuelNCVData>();
 
 				if (Body[JsonKeys.Job_FuelNCVs] == null) {
-					return fuelNCVs;
+					throw new Exception($"Job input data: missing input field: {JsonKeys.Job_FuelNCVs}");
                 }
 
 				foreach (var fuelNCV in Body.GetEx(JsonKeys.Job_FuelNCVs)) {
@@ -902,12 +902,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 					IEnumerable<FuelType> matches = Enum.GetValues(typeof(FuelType)).Cast<FuelType>().Where(x => x.GetLabel().Equals(type));
 					if (matches.Count() == 0) {
-						throw new Exception($"{JsonKeys.Job_FuelNCVs}: invalid fuel type: {type}");
+						throw new Exception($"Job input data: {JsonKeys.Job_FuelNCVs}: invalid {JsonKeys.Job_FuelNCV_Type}: {type}");
                     }
 
-					FuelType fuelType = matches.First();
+					fuelNCVs.Add(new FuelNCVData() { Type = matches.First(), NCV = (ncv * 1000000).SI<JoulePerKilogramm>() });
+                }
+
+				var fuels = JobInputData.Vehicle.Components.EngineInputData.EngineModes.First().Fuels;
 
-					fuelNCVs.Add(new FuelNCVData() { Type = fuelType, NCV = (ncv * 1000000).SI<JoulePerKilogramm>() });
+				foreach (var fuel in fuels) {
+					if (fuelNCVs.Count(x => x.Type == fuel.FuelType) == 0) {
+						throw new Exception($"Job input data: {JsonKeys.Job_FuelNCVs}: missing {JsonKeys.Job_FuelNCV_Type}: {fuel.FuelType.GetLabel()}");
+                    }
                 }
 
 				return fuelNCVs;
-- 
GitLab