diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index a926f9db76b27f0e29403197efe1c3bbcacedc7d..180b235fdd5015b93e202d690161c78e0b3838c5 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -1482,6 +1482,24 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to Exempted_CompletedBusOutputType. + /// </summary> + public static string CIF_OutputDataType_Exempted_CompletedBusOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_Exempted_CompletedBusOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Exempted_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_Exempted_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_Exempted_LorryOutputType", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to HEV_IEPC_S_LorryOutputType. /// </summary> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index df5ee1b2774e050476119339bb72b5138e99a53c..47a8c6793dbd9d0194cabd814ccb2c9c7eb89077 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1974,4 +1974,10 @@ <data name="CIF_OutputDataType_PEV_IEPC_LorryOutputType" xml:space="preserve"> <value>PEV_IEPC_LorryOutputType</value> </data> +<data name="CIF_OutputDataType_Exempted_LorryOutputType" xml:space="preserve"> + <value>Exempted_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_Exempted_CompletedBusOutputType" xml:space="preserve"> + <value>Exempted_CompletedBusOutputType</value> +</data> </root> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs index a4458e285e0f9ff508e73d65816e882b172033d8..968725b0a74fea49763eef31da7464ecef63681f 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 #endregion - public override VehicleCategory VehicleCategory => VehicleCategory.HeavyBusPrimaryVehicle; + public override VehicleCategory VehicleCategory => VehicleCategoryHelper.Parse(GetString(XMLNames.ChassisConfiguration)); public override bool ExemptedVehicle => true; @@ -90,7 +90,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) + : base(jobData, xmlNode, sourceFile) { } + + + #region Overrides of XMLDeclarationVehicleDataProviderV10 + + public override Kilogram CurbMassChassis => GetDouble(XMLNames.CorrectedActualMass).SI<Kilogram>(); + + #endregion } // --------------------------------------------------------------------------------------- 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 4facfda0f42bb820e9961fa50b29dd7dcd682bd8..cfdfe3d11deb4da515eed58d4c44afb76f20082a 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 @@ -29,6 +29,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation nameCombinationMethod, 6, 6, typeof(ICustomerInformationFileFactory).GetMethod(nameof(ICustomerInformationFileFactory .GetCustomerReport)))).InSingletonScope(); + #region Lorry CIF Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod( ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); @@ -89,6 +90,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation true, false))); + Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + #endregion + #region CompletedBUsCIF + Bind<IXMLCustomerReport>().To<Conventional_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, @@ -121,6 +132,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); + Bind<IXMLCustomerReport>().To<Exempted_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + #endregion #region VehicleTypes Bind<IXmlTypeWriter>().To<CIFConventionalLorryVehicleWriter>().When(AccessedViaCIFFactory) @@ -153,9 +172,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation Bind<IXmlTypeWriter>().To<CIF_PEV_IEPC_LorryVehicleWriter>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_IEPC_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<CIF_Exempted_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExempted_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<CIF_ConventionalCompletedBusVehicleWriter>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventional_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<CIF_ExemptedCompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExemptedCompletedBusVehicleType()); #endregion #region VehicleGroups Bind<IReportVehicleOutputGroup>().To<GeneralVehicleOutputSequenceGroupCif>().When(AccessedViaCIFFactory) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs index f4f9cf5e316c5acc41114be4777e5b2cad9456b9..59c4c5d765841c00cb75e1b9505c99c6b366103a 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs @@ -306,6 +306,32 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + public class CIF_Exempted_LorryVehicleWriter : VehicleWriter + { + public CIF_Exempted_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(vehicleData), + new XElement(_cif + "VehicleGroupCO2", "todo"), + new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer), + new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress), + new XElement(_cif + XMLNames.Component_Model, vehicleData.Model), + + new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis), + new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), + new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV) + ); + } + + #endregion + } + public class CIF_ConventionalCompletedBusVehicleWriter : VehicleWriter { public CIF_ConventionalCompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } @@ -325,4 +351,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + + + + + + + public class CIF_ExemptedCompletedBusVehicleWriter : VehicleWriter + { + public CIF_ExemptedCompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs index d732379fb5369298e803b42804d73a9cd3fd5ad4..27077ebcb9c009674f006b979c50bd1aee0f0f7a 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs @@ -167,6 +167,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + + public class PEV_IEPC_Lorry_CIF : CustomerInformationFile { public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_IEPC_LorryOutputType; @@ -182,18 +184,28 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } - #endregion - + public class Exempted_Lorry_CIF : CustomerInformationFile + { + public Exempted_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + #region Overrides of AbstractCustomerReport + public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_LorryOutputType; + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetExempted_LorryVehicleType().GetElement(inputData); + } + #endregion + } + #endregion - #region CompletedBus - public class Conventional_CompletedBusCIF : CustomerInformationFile + #region CompletedBus + public class Conventional_CompletedBusCIF : CustomerInformationFile { public override string OutputDataType => "Conventional_CompletedBusOutputType"; @@ -234,5 +246,22 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation } } + + public class Exempted_CompletedBusCIF : CustomerInformationFile + { + public Exempted_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_CompletedBusOutputType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetExemptedCompletedBusVehicleType().GetElement(inputData); + } + + #endregion + } + #endregion } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs index 835445c05eba6129b7cf447747e55880dc9a587f..8adb4ed243653ec87007cad413f97dcd31ca2be0 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs @@ -28,11 +28,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation IXmlTypeWriter GetPEV_E4_LorryVehicleType(); IXmlTypeWriter GetPEV_IEPC_LorryVehicleType(); + IXmlTypeWriter GetExempted_LorryVehicleType(); IXmlTypeWriter GetConventional_CompletedBusVehicleType(); IXmlTypeWriter GetHEV_CompletedBusVehicleType(); IXmlTypeWriter GetPEV_CompletedBusVehicleType(); + IXmlTypeWriter GetExemptedCompletedBusVehicleType(); + IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter(); IReportOutputGroup GetLorryGeneralVehicleSequenceGroupWriter(); @@ -50,6 +53,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation IReportOutputGroup GetPEV_VehicleSequenceGroupWriter(); IReportOutputGroup GetCompletedBusVehicleTypeGroup(); IReportCompletedBusOutputGroup GetGeneralVehicleSequenceGroupWriterCompletedBus(); - + + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs index b8187271f2bb101a2bbe390682558b1515b01329..38f3e6df54e18f3105c9159d691058a7cc3d26dd 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs @@ -15,9 +15,7 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9 { - - - internal abstract class AbstractManufacturerReport : IXMLManufacturerReport + public abstract class AbstractManufacturerReport : IXMLManufacturerReport { protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs index 4bc193b4959f47d1bc4585c0e2c5b9b05b53fe5d..4b0afcf56451e787f023b53b389d4b171a0e8f56 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs @@ -24,6 +24,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. IXmlTypeWriter GetPEV_E4_LorryVehicleType(); IXmlTypeWriter GetPEV_IEPC_LorryVehicleType(); + IXmlTypeWriter GetExempted_LorryVehicleType(); @@ -40,10 +41,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. IXmlTypeWriter GetPEV_E4_PrimaryBusVehicleType(); IXmlTypeWriter GetPEV_IEPC_PrimaryBusVehicleType(); + IXmlTypeWriter GetExempted_PrimaryBusVehicleType(); + IXmlTypeWriter GetConventional_CompletedBusVehicleType(); IXmlTypeWriter GetHEV_CompletedBusVehicleType(); IXmlTypeWriter GetPEV_CompletedBusVehicleType(); + IXmlTypeWriter GetExempted_CompletedBusVehicleType(); + IXmlTypeWriter GetConventionalLorryComponentsType(); IXmlTypeWriter GetHEV_Px_IHCP_LorryComponentsType(); @@ -137,6 +142,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. IReportVehicleOutputGroup GetCompletedBusDimensionSequenceGroup(); IMrfBusAuxGroup GetCompletedBus_HVACSystemGroup(); IMrfVehicleType GetBoostingLimitationsType(); + } 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 f1af3df91db4dcf8b2216fa43903c1315c06667e..d232b241ca4011a82193a52574edd34d6d10c081 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 @@ -86,6 +86,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. 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( VehicleCategoryHelper.Lorry, @@ -175,6 +177,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. true, false))); + Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + #endregion + #region PrimaryBUSMRF Bind<IXMLManufacturerReport>().To<Conventional_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, @@ -252,6 +264,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, true, false))); + Bind<IXMLManufacturerReport>().To<Exempted_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + + #endregion + #region CompletedBus MRF Bind<IXMLManufacturerReport>().To<Conventional_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( ToParams(VehicleCategoryHelper.CompletedBus, @@ -261,6 +284,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); + Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + + + #endregion #region Vehicle @@ -284,6 +318,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_LorryVehicleType()); Bind<IXmlTypeWriter>().To<PevIEPCLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_LorryVehicleType()); Bind<IXmlTypeWriter>().To<ConventionalPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_PrimaryBusVehicleType()); @@ -305,6 +341,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_PrimaryBusVehicleType()); Bind<IXmlTypeWriter>().To<PevIepcPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_PrimaryBusVehicleType()); Bind<IXmlTypeWriter>().To<ConventionalCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_CompletedBusVehicleType()); @@ -312,6 +350,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_CompletedBusVehicleType()); Bind<IXmlTypeWriter>().To<PevCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_CompletedBusVehicleType()); #endregion #region Components Bind<IXmlTypeWriter>().To<ConventionalLorryComponentsTypeWriter>() diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs index 034bfe8a5f00034c1a6b6906aa0f1c58f80723c8..82c6e93c08886a8168c52ea39909b4f04f55622f 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs @@ -31,12 +31,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "ConventionalCompletedBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData); - GenerateReport("ConventionalCompletedBusManufacturerOutputDataType"); + GenerateReport(OutputDataType); } @@ -66,12 +66,28 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV_CompletedBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData); - GenerateReport("PEVCompletedBusManufacturerOutputDataType"); + GenerateReport(OutputDataType); + } + + #endregion + } + + internal class Exempted_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase + { + public Exempted_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedCompletedBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); } #endregion diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs index 0efe3fa90a05ceefefa6b4bd042ad5c6319e4446..54b00b10bc0e4e7db647d44b886512f4d938bfc8 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs @@ -202,4 +202,20 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + + internal class Exempted_LorryManufacturerReport : LorryManufacturerReportBase + { + public Exempted_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedLorryManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_LorryVehicleType().GetElement(inputData); + } + + #endregion + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs index ca988f79c06cf9d8bff697276d6032b4c3b8a8cf..1d75abef3a479e37734b52790c18792fae96753e 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs @@ -3,6 +3,7 @@ using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport { @@ -45,14 +46,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-Px_IHPCPrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_Px_IHPC_PrimaryBusVehicleType().GetElement(inputData); - - - GenerateReport("HEV-Px_IHPCPrimaryBusManufacturerOutputDataType"); } #endregion @@ -65,13 +63,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-S2_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_S2_PrimaryBusVehicleType().GetElement(inputData); - - GenerateReport("HEV-S2_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -83,12 +79,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-S3_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_S3_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("HEV-S3_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -100,12 +95,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-S4_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_S4_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("HEV-S4_PrimaryBusManufacturerOutputDataType"); + } #endregion @@ -118,12 +113,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-IEPC-S_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_IEPC_S_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("HEV-IEPC-S_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -135,12 +129,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV-E2_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_E2_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-E2_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -153,12 +146,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV-E3_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_E3_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-E3_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -175,12 +167,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } - + public override string OutputDataType => "PEV-E4_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_E4_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-E4_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -193,17 +183,29 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV-IEPC_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_IEPC_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-IEPC_PrimaryBusManufacturerOutputDataType"); } #endregion } + internal class Exempted_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public Exempted_PrimaryBus_ManufacturerReport(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractManufacturerReport + public override string OutputDataType => "ExemptedPrimaryBusManufacturerOutputDataType"; + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs index 82606a7d45f5ae251a4bdeb4c1dcbac4a84a410e..814e7af4d80f5a959354c260f15078d9662b10a0 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs @@ -13,7 +13,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. { public class LorryGeneralVehicleOutputXmlGroup : AbstractReportOutputGroup { - #region Implementation of IMRFGroupWriter + #region Implementation of IMRFGroupWriterb public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) { diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs index bcda900580336b798c7c93a81d2be62003b39021..a46c1b4d47adffdcb5e2bcb51b3a0f4ada503dc5 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter { @@ -198,7 +199,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + public class ExemptedLorryVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData), + new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_W)) + ); + } + + #endregion + } public class ConventionalPrimaryBusVehicleTypeWriter : VehicleTypeWriter @@ -365,6 +382,24 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + public class ExemptedPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData), + new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_W)) + ); + } + + #endregion + } + public class ConventionalCompletedBusVehicleTypeWriter : VehicleTypeWriter { public ConventionalCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } @@ -416,8 +451,24 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + public class ExemptedCompletedBusVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + #region Overrides of VehicleTypeWriter + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputdata = inputData as IMultistageBusInputDataProvider; + if (multistageInputdata == null) + { + throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetCompletedBusGeneralVehicleOutputGroup().GetElements(inputData) + ); + } - + #endregion + } } diff --git a/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs index 174fbc94af7e5dc2e0edcdfb2df2a32674ec51bc..d42cc8c3d87ffb63d80d607c8dee15def595fac4 100644 --- a/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs +++ b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs @@ -93,7 +93,12 @@ namespace TUGraz.VectoMockup.Ninject return _cifFactory.GetPEV_IEPC_LorryVehicleType(); } - public IXmlTypeWriter GetConventional_CompletedBusVehicleType() + public IXmlTypeWriter GetExempted_LorryVehicleType() + { + return _cifFactory.GetExempted_LorryVehicleType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusVehicleType() { return _cifFactory.GetConventional_CompletedBusVehicleType(); } @@ -108,7 +113,12 @@ namespace TUGraz.VectoMockup.Ninject return _cifFactory.GetPEV_CompletedBusVehicleType(); } - public IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter() + public IXmlTypeWriter GetExemptedCompletedBusVehicleType() + { + return _cifFactory.GetExemptedCompletedBusVehicleType(); + } + + public IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter() { return _cifFactory.GetGeneralVehicleSequenceGroupWriter(); } diff --git a/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs index 02d6f3a64f00568c1b71d325bfb5f734461dc29f..04732f6a612082b692e37cf5767196965573fe5f 100644 --- a/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs +++ b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs @@ -97,7 +97,12 @@ namespace TUGraz.VectoMockup.Ninject return _manufacturerReportFactoryImplementation.GetPEV_IEPC_LorryVehicleType(); } - public IXmlTypeWriter GetConventional_PrimaryBusVehicleType() + public IXmlTypeWriter GetExempted_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_LorryVehicleType(); + } + + public IXmlTypeWriter GetConventional_PrimaryBusVehicleType() { return _manufacturerReportFactoryImplementation.GetConventional_PrimaryBusVehicleType(); } @@ -147,7 +152,12 @@ namespace TUGraz.VectoMockup.Ninject return _manufacturerReportFactoryImplementation.GetPEV_IEPC_PrimaryBusVehicleType(); } - public IXmlTypeWriter GetConventional_CompletedBusVehicleType() + public IXmlTypeWriter GetExempted_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusVehicleType() { return _manufacturerReportFactoryImplementation.GetConventional_CompletedBusVehicleType(); } @@ -162,7 +172,12 @@ namespace TUGraz.VectoMockup.Ninject return _manufacturerReportFactoryImplementation.GetPEV_CompletedBusVehicleType(); } - public IXmlTypeWriter GetConventionalLorryComponentsType() + public IXmlTypeWriter GetExempted_CompletedBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetConventionalLorryComponentsType() { return _manufacturerReportFactoryImplementation.GetConventionalLorryComponentsType(); } diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs index ef7039595197f0c677b697b1a1dbe99db9f8cd2a..633cd61dd6ba0b7c36f00aebded59bdbeb91bf85 100644 --- a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs +++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs @@ -445,7 +445,7 @@ namespace VectoMockupTest [TestCase("TestData/Generic Vehicles/Declaration Mode/40t Long Haul Truck/40t_Long_Haul_Truck.vecto", TestName="JSON_40TLonghaul")] - [TestCase("TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto", TestName="JSON_RigitTruckClass9")] + [TestCase("TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto", TestName="JSON_RigidTruckClass9")] public void JSONTest(string fileName, bool mockup = true) {