Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit f6f32158 authored by Harald Martini's avatar Harald Martini
Browse files

extracted method to create a name from vehicle parameters from...

extracted method to create a name from vehicle parameters from MRFNinjectModule to separate class, added second class to generate names for RunDataFactory bindings
parent 50805053
No related branches found
No related tags found
No related merge requests found
......@@ -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,
......
......@@ -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,
......
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment