diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs index 6435bfe621cbedb293badd70008ba7fa38735fe4..9391001d4fe548a387a7ee009450443580b36bf1 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs @@ -25,37 +25,29 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation public override void Load() { LoadModule<ContextPreservationModule>(); - Bind<ICustomerInformationFileFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider( - nameCombinationMethod, 6, 6, typeof(ICustomerInformationFileFactory).GetMethod(nameof(ICustomerInformationFileFactory + Bind<ICustomerInformationFileFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName, 6, 6, typeof(ICustomerInformationFileFactory).GetMethod(nameof(ICustomerInformationFileFactory .GetCustomerReport)))).InSingletonScope(); #region Lorry CIF - Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, + Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false,true, false))); - Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, @@ -63,8 +55,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); - Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, @@ -72,8 +63,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); - Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, @@ -81,8 +71,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); - Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, @@ -90,8 +79,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation true, false))); - Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.Lorry, + Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, @@ -100,32 +88,25 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #region MediumLorryCIF - Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle, + Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ParallelHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod( - ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, + Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false, true, false))); - Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, @@ -133,8 +114,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); - Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, @@ -142,8 +122,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); - Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, @@ -151,8 +130,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); - Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, @@ -160,8 +138,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation true, false))); - Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.Van, + Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, @@ -174,40 +151,35 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #region CompletedBUsCIF - Bind<IXMLCustomerReport>().To<Conventional_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<Conventional_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_Px_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<HEV_Px_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S2_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<HEV_S2_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S3_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<HEV_S3_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLCustomerReport>().To<HEV_S4_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<HEV_S4_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, @@ -215,48 +187,42 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false))); - Bind<IXMLCustomerReport>().To<HEV_IEPC_S_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<HEV_IEPC_S_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false, true, false))); - Bind<IXMLCustomerReport>().To<PEV_E2_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<PEV_E2_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, false, false, false))); - Bind<IXMLCustomerReport>().To<PEV_E3_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<PEV_E3_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, false, false, false))); - Bind<IXMLCustomerReport>().To<PEV_E4_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<PEV_E4_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, false, false, false))); - Bind<IXMLCustomerReport>().To<PEV_IEPC_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<PEV_IEPC_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, false, true, false))); - Bind<IXMLCustomerReport>().To<Exempted_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLCustomerReport>().To<Exempted_CompletedBusCIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs index 7e04844b72b551ce8e811bc28e1460573ebbc1dc..50bcc8048521b2ce22e43049b4d09fd00b49fdd0 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs @@ -23,74 +23,24 @@ using TUGraz.VectoCore.Utils.Ninject; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9 { - internal class MRFNinjectModule : AbstractNinjectModule + internal class MRFNinjectModule : AbstractNinjectModule { //IXMLManufacturerReport GetManufacturerReport(string vehicleType, VectoSimulationJobType jobType, // ArchitectureID archId, bool exempted, bool iepc, bool ihpc); - protected static object[] ToParams(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, - bool exempted, bool iepc, bool ihpc) - { - return new[] { (object)vehicleType, jobType, archId, exempted, iepc, ihpc}; - } - protected static CombineArgumentsToNameInstanceProvider.CombineToName nameCombinationMethod = arguments => { - - //may be called with first argument of type string (when defining the bindings) or VehicleCategory when using the factory - string vehicleType = arguments[0] as string; - if (arguments[0] is VehicleCategory vehicleCategory) { - vehicleType = vehicleCategory.GetVehicleType(); - } - - - - VectoSimulationJobType jobType = (VectoSimulationJobType)arguments[1]; - ArchitectureID archId = (ArchitectureID)arguments[2]; - bool exempted = (bool)arguments[3]; - bool iepc = (bool)arguments[4]; - bool ihpc = (bool)arguments[5]; - - - - string result = ""; - if (exempted) { - result += exempted + vehicleType; - } else { - if (vehicleType == VehicleCategoryHelper.Lorry || vehicleType == VehicleCategoryHelper.PrimaryBus || vehicleType == VehicleCategoryHelper.CompletedBus || vehicleType == VehicleCategoryHelper.Van) { - if (jobType == VectoSimulationJobType.ParallelHybridVehicle || ihpc) { - result += "HEV-Px/IHPC"; - }else if (jobType == VectoSimulationJobType.SerialHybridVehicle) { - result += "HEV-" + archId; - }else if (jobType == VectoSimulationJobType.BatteryElectricVehicle) { - if (iepc) { - result += "PEV-IEPC"; - } else { - result += "PEV" + archId; - } - }else if (jobType == VectoSimulationJobType.ConventionalVehicle) { - result += "Conventional"; - } - }else if (vehicleType == VehicleCategoryHelper.CompletedBus) { - result += jobType; - } - - result += vehicleType; - } - - return result; - }; + private static readonly VehicleTypeAndArchitectureStringHelperReport _vehicleTypeAndArchitectureStringHelper = new VehicleTypeAndArchitectureStringHelperReport(); public override void Load() { LoadModule<ContextPreservationModule>(); - Bind<IManufacturerReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, + Bind<IManufacturerReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(VehicleTypeAndArchitectureStringHelper.CreateName, 6, 6, typeof(IManufacturerReportFactory).GetMethod(nameof(IManufacturerReportFactory.GetManufacturerReport)))).InSingletonScope(); Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>() .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryManufacturerReport()); #region LorryMRF - Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named( - nameCombinationMethod.Invoke(ToParams( + Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, @@ -98,7 +48,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_LorryManufacturerReport>() - .Named(nameCombinationMethod.Invoke(ToParams( + .Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, @@ -106,8 +56,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, true))); - Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, @@ -116,8 +65,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false))); - Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, @@ -125,8 +73,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, @@ -134,8 +81,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, @@ -143,8 +89,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. true, false))); - Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, @@ -152,8 +97,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, @@ -161,8 +105,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, @@ -170,24 +113,21 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.Lorry, + Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, false, true, false))); - Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.Lorry, + Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, false, false))); - Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named( - nameCombinationMethod.Invoke(ToParams( + Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, @@ -195,7 +135,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_LorryManufacturerReport>() - .Named(nameCombinationMethod.Invoke(ToParams( + .Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, @@ -203,8 +143,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, true))); - Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, @@ -213,8 +152,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false))); - Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, @@ -222,8 +160,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, @@ -231,8 +168,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, @@ -240,8 +176,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. true, false))); - Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, @@ -249,8 +184,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, @@ -258,8 +192,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, @@ -267,8 +200,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); - Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, @@ -276,8 +208,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. true, false))); - Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams( + Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, @@ -287,85 +218,73 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion #region PrimaryBUSMRF - Bind<IXMLManufacturerReport>().To<Conventional_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<Conventional_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, true))); - Bind<IXMLManufacturerReport>().To<HEV_S2_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<HEV_S2_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_S3_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<HEV_S3_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_S4_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<HEV_S4_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_PrimaryBus_ManufacturerReport>().Named( - nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E2_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<PEV_E2_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E3_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<PEV_E3_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_E4_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<PEV_E4_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_IEPC_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<PEV_IEPC_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, false, true, false))); - Bind<IXMLManufacturerReport>().To<Exempted_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLManufacturerReport>().To<Exempted_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.UNKNOWN, true, @@ -376,88 +295,77 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion #region CompletedBus MRF - Bind<IXMLManufacturerReport>().To<Conventional_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<Conventional_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, false, false))); - Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false, true, false))); - Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, false, false, false))); - Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, false, true, false))); - Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.CompletedBus, + Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, @@ -774,5 +682,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. } #endregion + + public static VehicleTypeAndArchitectureStringHelperReport VehicleTypeAndArchitectureStringHelper + { + get { return _vehicleTypeAndArchitectureStringHelper; } + } } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs index da2414c8c771d3d37b6e1b0e03fda5f2ad073eb9..86fd335d1a635d47cf149ccd8645d2886bfecd66 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs @@ -16,103 +16,93 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF internal class VIFNinjectModule : MRFNinjectModule { #region Overrides of NinjectModule + public override void Load() { LoadModule<ContextPreservationModule>(); - Bind<IVIFReportInterimFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, + Bind<IVIFReportInterimFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(VehicleTypeAndArchitectureStringHelper.CreateName, 6, 6, typeof(IVIFReportInterimFactory).GetMethod(nameof(IVIFReportInterimFactory.GetInterimVIFReport)) )).InSingletonScope(); - Bind<IVIFReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, + Bind<IVIFReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(VehicleTypeAndArchitectureStringHelper.CreateName, 6, 6, typeof(IVIFReportFactory).GetMethod(nameof(IVIFReportFactory.GetVIFReport)) )).InSingletonScope(); #region Primary Vehicle Information File Reports - Bind<IXMLVehicleInformationFile>().To<Conventional_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<Conventional_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<HEV_Px_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<HEV_Px_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<HEV_S2_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<HEV_S2_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<HEV_S3_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<HEV_S3_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<HEV_S4_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<HEV_S4_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<HEV_IEPC_S_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<HEV_IEPC_S_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false, true, false))); - Bind<IXMLVehicleInformationFile>().To<PEV_E2_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<PEV_E2_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<PEV_E3_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<PEV_E3_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<PEV_E4_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<PEV_E4_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, false, false, false))); - Bind<IXMLVehicleInformationFile>().To<PEV_IEPC_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<PEV_IEPC_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC, false, true, false))); - Bind<IXMLVehicleInformationFile>().To<Exempted_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLVehicleInformationFile>().To<Exempted_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, @@ -125,88 +115,77 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF // -- Reports - Bind<IXMLMultistepIntermediateReport>().To<Conventional_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<Conventional_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.UNKNOWN, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S_IEPC, false, true, false))); - Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S3, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E3, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E4, false, false, false))); - Bind<IXMLMultistepIntermediateReport>().To<IEPC_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<IEPC_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.UNKNOWN, false, true, false))); - Bind<IXMLMultistepIntermediateReport>().To<Exempted_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke( - ToParams(VehicleCategoryHelper.PrimaryBus, + Bind<IXMLMultistepIntermediateReport>().To<Exempted_CompletedBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, true, diff --git a/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs b/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..f737f5c18d83753542dcdddeb1a7c58be09b3910 --- /dev/null +++ b/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs @@ -0,0 +1,170 @@ +using System; +using System.Data.Common; +using System.Threading; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter; + +namespace TUGraz.VectoCore.Utils.Ninject +{ + internal interface IVehicleTypeAndArchitectureStringHelper + { + string GetName(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId = ArchitectureID.UNKNOWN, + bool exempted = false, bool iepc = false, bool ihpc = false); + + object[] ToParams(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + bool exempted, bool iepc, bool ihpc); + + CombineArgumentsToNameInstanceProvider.CombineToName CreateName { get; } + } + + internal abstract class VehicleTypeAndArchitectureStringHelperReportBase : IVehicleTypeAndArchitectureStringHelper + { + public string GetName(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId = ArchitectureID.UNKNOWN, + bool exempted = false, bool iepc = false, bool ihpc = false) + { + + return CreateName(ToParams(vehicleType, jobType, archId, exempted, iepc, ihpc)); + } + + + + public object[] ToParams(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + bool exempted, bool iepc, bool ihpc) + { + if (!VehicleCategoryHelper.SuperCategories.Contains(vehicleType)) { + throw new Exception( + $"String provided for {nameof(vehicleType)} must match the strings in {nameof(VehicleCategoryHelper.SuperCategories)}"); + }; + return new[] { (object)vehicleType, jobType, archId, exempted, iepc, ihpc}; + } + + public abstract CombineArgumentsToNameInstanceProvider.CombineToName CreateName { get; } + } + + internal class VehicleTypeAndArchitectureStringHelperReport : VehicleTypeAndArchitectureStringHelperReportBase + { + public override CombineArgumentsToNameInstanceProvider.CombineToName CreateName { get; } = (arguments => { + + //may be called with first argument of type string (when defining the bindings) or VehicleCategory when using the factory + string vehicleType = arguments[0] as string; + if (arguments[0] is VehicleCategory vehicleCategory) { + vehicleType = vehicleCategory.GetVehicleType(); + } + + + + VectoSimulationJobType jobType = (VectoSimulationJobType)arguments[1]; + ArchitectureID archId = (ArchitectureID)arguments[2]; + bool exempted = (bool)arguments[3]; + bool iepc = (bool)arguments[4]; + bool ihpc = (bool)arguments[5]; + + + + string result = ""; + if (exempted) { + result += exempted + vehicleType; + } else { + if (vehicleType == VehicleCategoryHelper.Lorry || vehicleType == VehicleCategoryHelper.PrimaryBus || vehicleType == VehicleCategoryHelper.CompletedBus || vehicleType == VehicleCategoryHelper.Van) { + if (jobType == VectoSimulationJobType.ParallelHybridVehicle || ihpc) { + result += "HEV-Px/IHPC"; + }else if (jobType == VectoSimulationJobType.SerialHybridVehicle) { + result += "HEV-" + archId; + }else if (jobType == VectoSimulationJobType.BatteryElectricVehicle) { + if (iepc) { + result += "PEV-IEPC"; + } else { + result += "PEV" + archId; + } + }else if (jobType == VectoSimulationJobType.ConventionalVehicle) { + result += "Conventional"; + } + }else if (vehicleType == VehicleCategoryHelper.CompletedBus) { + result += jobType; + } + + result += vehicleType; + } + + + return result; + }); + } + + internal class VehicleTypeAndArchitectureStringHelperRundata : VehicleTypeAndArchitectureStringHelperReportBase + { + public override CombineArgumentsToNameInstanceProvider.CombineToName CreateName { get; } = (arguments => { + string identifier = ""; + //may be called with first argument of type string (when defining the bindings) or VehicleCategory when using the factory + string vehicleType = arguments[0] as string; + if (arguments[0] is VehicleCategory vehicleCategory) + { + vehicleType = vehicleCategory.GetVehicleType(); + } + + + + VectoSimulationJobType jobType = (VectoSimulationJobType)arguments[1]; + ArchitectureID archId = (ArchitectureID)arguments[2]; + bool exempted = (bool)arguments[3]; + bool iepc = (bool)arguments[4]; + bool ihpc = (bool)arguments[5]; + var vehicleClassification = new VehicleClassification(jobType, archId, vehicleType, exempted, iepc, ihpc); + + + + + return vehicleClassification.GetHashCode().ToString(); + }); + + private struct VehicleClassification + { + #region Equality members + + public bool Equals(VehicleClassification other) + { + return JobType == other.JobType && ArchId == other.ArchId && VehicleType == other.VehicleType && Exempted == other.Exempted && Iepc == other.Iepc && Ihpc == other.Ihpc; + } + + public override bool Equals(object obj) + { + return obj is VehicleClassification other && Equals(other); + } + + public override int GetHashCode() + { + unchecked { + var hashCode = (int)JobType; + hashCode = (hashCode * 397) ^ (int)ArchId; + hashCode = (hashCode * 397) ^ (VehicleType != null ? VehicleType.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ Exempted.GetHashCode(); + hashCode = (hashCode * 397) ^ Iepc.GetHashCode(); + hashCode = (hashCode * 397) ^ Ihpc.GetHashCode(); + return hashCode; + } + } + + #endregion + + private VectoSimulationJobType JobType { get; } + private ArchitectureID ArchId { get; } + private string VehicleType { get; } + private bool Exempted { get; } + private bool Iepc { get; } + private bool Ihpc { get; } + + public VehicleClassification(VectoSimulationJobType jobType, ArchitectureID archId, string vehicleType, bool exempted, bool iepc, bool ihpc) + { + ArchId = archId; + JobType = jobType; + ArchId = archId; + VehicleType = vehicleType; + Exempted = exempted; + Iepc = iepc; + Ihpc = ihpc; + } + + } + } +} \ No newline at end of file