diff --git a/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs index b1b2f867acb503381a628c964014bff6dedd7016..04489b58c0da60a308dd12147b0d21bbb12b3b9a 100644 --- a/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs @@ -335,5 +335,10 @@ namespace TUGraz.VectoCommon.Utils item7 = enumerator.Current; } } + + /// <summary> + /// Checks if a value is one of the candidate values. + /// </summary> + public static bool IsOneOf<T>(this T self, params T[] candidates) => candidates.Contains(self); } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs index 9293aea13597a2a2fae540b96b605cc1e99a04b4..3a64be695e9cc6e04c6715e7a44513dafe6c6440 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; @@ -13,6 +14,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.Utils; +using static TUGraz.VectoCommon.InputData.VectoSimulationJobType; namespace TUGraz.VectoCore.InputData.Reader.Impl { public abstract class AbstractDeclarationVectoRunDataFactory : LoggingObject, IVectoRunDataFactory @@ -41,6 +43,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { IDeclarationInputDataProvider dataProvider, IDeclarationReport report) { InputDataProvider = dataProvider; + + if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle)){ + throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation."); + } Report = report; _allowVocational = true;