From 32ebdb001c05c617dc2cac5115673fc16b398199 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Tue, 12 Jul 2022 16:43:54 +0200 Subject: [PATCH] renaming files from VifReport to VehicleInformationFile using xmlvalidator from vectoCore in testcase start writing VIF --- ...eport.cs => IXMLVehicleInformationFile.cs} | 2 +- ...t.cs => AbstractVehicleInformationFile.cs} | 8 +- .../Components/VIFAdasType.cs | 11 +-- .../IVIFReportFactory.cs | 2 +- .../VIFNinjectModule.cs | 13 +++- .../VehicleInformationFile.cs} | 25 +++--- .../VehicleParameterGroup.cs | 8 +- .../XMLPrimaryBusVehicleReport.cs | 2 +- .../OutputData/XML/XMLDeclarationReport.cs | 12 +-- .../XML/XMLDeclarationReportPrimaryVehicle.cs | 16 ++-- .../XML/XMLDeclarationReport_0_9.cs | 33 ++++---- .../Reports/ManufacturerReportWriterTest.cs | 77 +++---------------- .../VectoMockup/Ninject/VIFMockupModule.cs | 17 +++- .../Reports/MockupReportFactory.cs | 6 +- .../VectoMockup/Reports/MockupVIFReport.cs | 4 +- ...ort.cs => MockupVehicleInformationFile.cs} | 20 ++--- .../XMLDeclarationMockupPrimaryReport.cs | 16 ++-- .../MockupFollowUpSimulatorFactoryCreator.cs | 4 +- .../MockupSimulatorFactories.cs | 1 + 19 files changed, 126 insertions(+), 151 deletions(-) rename VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/{IXMLPrimaryVehicleReport.cs => IXMLVehicleInformationFile.cs} (91%) rename VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/{AbstractVIFReport.cs => AbstractVehicleInformationFile.cs} (94%) rename VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/{VIFReport/PrimaryVIFReport.cs => VehicleInformationFile/VehicleInformationFile.cs} (56%) rename VectoMockup/VectoMockup/Reports/{MockupPrimaryReport.cs => MockupVehicleInformationFile.cs} (69%) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs similarity index 91% rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs index 04ff8f3957..7cd02a7241 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs @@ -5,7 +5,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile { - public interface IXMLPrimaryVehicleReport + public interface IXMLVehicleInformationFile { void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes); void WriteResult(XMLDeclarationReport.ResultEntry result); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs similarity index 94% rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs index babfcaab4a..39a520e56d 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs @@ -13,10 +13,10 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 { - public abstract class AbstractVIFReport : IXMLPrimaryVehicleReport + public abstract class AbstractVehicleInformationFile : IXMLVehicleInformationFile { private XDocument _report; - private XNamespace _tns; + protected XNamespace _tns; protected readonly IVIFReportFactory _vifFactory; @@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF protected XElement Results { get; set; } - protected AbstractVIFReport(IVIFReportFactory vifFactory) + protected AbstractVehicleInformationFile(IVIFReportFactory vifFactory) { _vifFactory = vifFactory; } @@ -68,7 +68,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF new XAttribute(XNamespace.Xmlns + "v2.0", _v20), new XAttribute(XNamespace.Xmlns + "v2.1", _v21), new XAttribute(XNamespace.Xmlns + "v2.3", _v23), - new XAttribute(XNamespace.Xmlns + "v2.8", _v24), + new XAttribute(XNamespace.Xmlns + "v2.4", _v24), new XAttribute(_xsi + "schemaLocation", $"{_tns.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"), new XAttribute("xmlns", _tns), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs index 85508575b0..31619a6fe5 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs @@ -21,11 +21,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF if (adas == null) return null; - return new XElement(_vif + XMLNames.Vehicle_ADAS, - new XElement(_vif + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart), - new XElement(_vif + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop), - new XElement(_vif + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adas.EcoRoll == EcoRollType.WithEngineStop), - new XElement(_vif + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat())); + return new XElement(_vif + XMLNames.Vehicle_ADAS, + new XAttribute("xmlns", _v24), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop), + new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adas.EcoRoll == EcoRollType.WithEngineStop), + new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat())); } #endregion diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs index 2794eebb2c..b960ee5b26 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs @@ -8,7 +8,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF { public interface IVIFReportFactory { - IXMLPrimaryVehicleReport GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + IXMLVehicleInformationFile GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, bool exempted, bool iepc, bool ihpc); 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 604f9e9b5a..c3eeacd671 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 @@ -1,10 +1,13 @@ using Ninject.Activation; using Ninject.Extensions.ContextPreservation; using Ninject.Extensions.Factory; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport; using TUGraz.VectoCore.Utils.Ninject; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 @@ -20,7 +23,15 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF Bind<IVIFReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, 6, 6, typeof(IVIFReportFactory).GetMethod(nameof(IVIFReportFactory.GetVIFReport)))).InSingletonScope(); - + Bind<IXMLVehicleInformationFile>().To<Conventional_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + false, + false, + false))); + + #region VehicleTypes Bind<IXmlTypeWriter>().To<ConventionalVehicleType>().When(AccessedViaVIFFactory) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile.cs similarity index 56% rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile.cs index 01c6ab60c1..25c5ce35c5 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile.cs @@ -7,10 +7,14 @@ using TUGraz.VectoCommon.InputData; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport { - internal class PrimaryVIFReportBase : AbstractVIFReport + internal class VehicleInformationFile : AbstractVehicleInformationFile { private string _outputDataType; - public PrimaryVIFReportBase(IVIFReportFactory vifFactory) : base(vifFactory) { } + + public VehicleInformationFile(IVIFReportFactory vifFactory) : base(vifFactory) + { + _tns = VIF; + } #region Overrides of AbstractVIFReport @@ -18,23 +22,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { - - - - //Vehicle - //InputDataSignature - //ManufacturerRecordSignature - //Results - //ApplicationInformation - - - throw new NotImplementedException(); + Vehicle = _vifFactory.GetConventionalVehicleType().GetElement(inputData); } #endregion } - + internal class Conventional_PrimaryBus_VIF : VehicleInformationFile + { + public Conventional_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { } + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs index d71b20a79d..98ef8a1804 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs @@ -112,17 +112,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF var vehicle = inputData.JobInputData.Vehicle; var result = new List<XElement> { - new XElement(_vif + XMLNames.ManufacturerAddressPrimaryVehicle, vehicle.Manufacturer), + new XElement(_vif + XMLNames.ManufacturerPrimaryVehicle, vehicle.Manufacturer), new XElement(_vif + XMLNames.ManufacturerAddressPrimaryVehicle, vehicle.ManufacturerAddress), - new XElement(_vif +XMLNames.Component_Model, vehicle.Model), + new XElement(_vif + XMLNames.Component_Model, vehicle.Model), new XElement(_vif + XMLNames.Vehicle_VIN, vehicle.VIN), new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(vehicle.Date, XmlDateTimeSerializationMode.Utc)), new XElement(_vif + XMLNames.Vehicle_LegislativeCategory, vehicle.LegislativeClass.ToXMLFormat()), new XElement(_vif + XMLNames.ChassisConfiguration, vehicle.VehicleCategory.ToXMLFormat()), new XElement(_vif + XMLNames.Vehicle_AxleConfiguration, vehicle.AxleConfiguration.ToXMLFormat()), new XElement(_vif + XMLNames.Vehicle_Articulated, vehicle.Articulated), - new XElement(_vif + XMLNames.TPMLM, vehicle.GrossVehicleMassRating.ToXMLFormat()), - new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.ToXMLFormat()), + new XElement(_vif + XMLNames.TPMLM, vehicle.GrossVehicleMassRating.ToXMLFormat(0)), + new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)), new XElement(_vif + XMLNames.Vehicle_RetarderType, vehicle.Components.RetarderInputData.Type.ToXMLFormat()), new XElement(_vif + XMLNames.Vehicle_RetarderRatio, vehicle.Components.RetarderInputData.Ratio.ToXMLFormat(3)), new XElement(_vif + XMLNames.Vehicle_AngledriveType, vehicle.Components.AngledriveInputData.Type.ToXMLFormat()), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs index 2222b88a79..8b55762dc1 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs @@ -25,7 +25,7 @@ using TUGraz.VectoHashing; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile { - public class XMLPrimaryBusVehicleReport : IXMLPrimaryVehicleReport + public class XMLPrimaryBusVehicleReport : IXMLVehicleInformationFile { public XNamespace Tns => tns; protected XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"; diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs index ed6af04120..7cdfff60bd 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs @@ -255,12 +255,12 @@ namespace TUGraz.VectoCore.OutputData.XML protected virtual void InstantiateReports(VectoRunData modelData) { - if (modelData.Exempted) { - ManufacturerRpt = new XMLManufacturerReportExemptedTruck(); - } else { - ManufacturerRpt = new XMLManufacturerReportTruck(); - } - CustomerRpt = new XMLCustomerReport(); + //if (modelData.Exempted) { + // ManufacturerRpt = new XMLManufacturerReportExemptedTruck(); + //} else { + // ManufacturerRpt = new XMLManufacturerReportTruck(); + //} + //CustomerRpt = new XMLCustomerReport(); } private static IDictionary<Tuple<MissionType, LoadingType>, double> ZeroWeighting => diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs index 36bdb48f59..a50a01b0df 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs @@ -10,7 +10,7 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; namespace TUGraz.VectoCore.OutputData.XML { public class XMLDeclarationReportPrimaryVehicle : XMLDeclarationReport { - protected IXMLPrimaryVehicleReport PrimaryReport; + protected IXMLVehicleInformationFile VehicleInformationFile; public XMLDeclarationReportPrimaryVehicle(IReportWriter writer, bool writePIF = false) : base(writer) @@ -19,7 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML { public override XDocument CustomerReport => null; - public override XDocument PrimaryVehicleReport => PrimaryReport?.Report; + public override XDocument PrimaryVehicleReport => VehicleInformationFile?.Report; #region Overrides of XMLDeclarationReport @@ -29,12 +29,12 @@ namespace TUGraz.VectoCore.OutputData.XML { if (modelData.Exempted) { ManufacturerRpt = new XMLManufacturerReportExeptedPrimaryBus(); CustomerRpt = new XMLCustomerReportExemptedPrimaryBus(); - PrimaryReport = new XMLExemptedPrimaryBusVehicleReport(); + VehicleInformationFile = new XMLExemptedPrimaryBusVehicleReport(); } else { ManufacturerRpt = new XMLManufacturerReportPrimaryBus(); CustomerRpt = new XMLCustomerReport(); - PrimaryReport = new XMLPrimaryBusVehicleReport(); + VehicleInformationFile = new XMLPrimaryBusVehicleReport(); } @@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML { public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { base.InitializeReport(modelData, fuelModes); - PrimaryReport.Initialize(modelData,fuelModes); + VehicleInformationFile.Initialize(modelData,fuelModes); } @@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.OutputData.XML { protected override void WriteResult(ResultEntry result) { base.WriteResult(result); - PrimaryReport.WriteResult(result); + VehicleInformationFile.WriteResult(result); } protected override void GenerateReports() @@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.OutputData.XML { ManufacturerRpt.GenerateReport(); var fullReportHash = GetSignature(ManufacturerRpt.Report); CustomerRpt.GenerateReport(fullReportHash); - PrimaryReport.GenerateReport(fullReportHash); + VehicleInformationFile.GenerateReport(fullReportHash); } @@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.OutputData.XML { protected override void OutputReports() { Writer.WriteReport(ReportType.DeclarationReportManufacturerXML, ManufacturerRpt.Report); - Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, PrimaryReport.Report); + Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, VehicleInformationFile.Report); } #endregion diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs index 98ebbacb9b..cdec409912 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs @@ -13,21 +13,25 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; namespace TUGraz.VectoCore.OutputData.XML { public class XMLDeclarationReportPrimaryVehicle_09 : XMLDeclarationReportPrimaryVehicle { - private readonly ICustomerInformationFileFactory _cifFactory; + //private readonly ICustomerInformationFileFactory _cifFactory; private readonly IManufacturerReportFactory _mrfFactory; + private readonly IVIFReportFactory _vifFactory; public XMLDeclarationReportPrimaryVehicle_09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, bool writePIF = false) : base(writer, writePIF) { _mrfFactory = mrfFactory; - _cifFactory = cifFactory; + //_cifFactory = cifFactory; + _vifFactory = vifFactory; } @@ -40,25 +44,26 @@ namespace TUGraz.VectoCore.OutputData.XML var ihpc = vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; - if (modelData.Exempted) { - PrimaryReport = new XMLExemptedPrimaryBusVehicleReport(); - } - PrimaryReport = new XMLPrimaryBusVehicleReport(); + //if (modelData.Exempted) { + // PrimaryReport = new XMLExemptedPrimaryBusVehicleReport(); + //} + //PrimaryReport = new XMLPrimaryBusVehicleReport(); - //PrimaryRpt = _vifFactory.GetVIF(vehicleData.VehicleCategory, - // vehicleData.VehicleType, - // vehicleData.ArchitectureID, - // vehicleData.ExemptedVehicle, - // iepc, - // ihpc); - - ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory, vehicleData.VehicleType, vehicleData.ArchitectureID, vehicleData.ExemptedVehicle, iepc, ihpc); + + VehicleInformationFile = _vifFactory.GetVIFReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + + } protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) diff --git a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs index 3164932ab3..01d383c5c5 100644 --- a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs +++ b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs @@ -28,6 +28,7 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.Manu using TUGraz.VectoCore.Tests.Integration.CompletedBus; using TUGraz.VectoCore.Tests.Models.Simulation; using TUGraz.VectoCore.Utils; +using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; namespace TUGraz.VectoCore.Tests.XML.Reports { @@ -100,57 +101,14 @@ namespace TUGraz.VectoCore.Tests.XML.Reports var error = false; try { - - var schemaSet = new XmlSchemaSet() { - XmlResolver = new XmlUrlResolver() - }; - - XmlSchema schema; - using (var reader = XmlReader.Create( - Path.GetFullPath(Path.Combine(xsdPath, "VectoOutputManufacturer.0.9.xsd")))) - { - schema = XmlSchema.Read(reader, null); - } - - schemaSet.Add(schema); - - using (var reader = XmlReader.Create( - Path.GetFullPath(Path.Combine(xsdPath, "VectoOutputCustomer.0.9.xsd")))) - { - schema = XmlSchema.Read(reader, null); - } - - schemaSet.Add(schema); - - using (var reader = XmlReader.Create( - Path.GetFullPath(Path.Combine(xsdPath, "VectoOutputMultistep.0.1.xsd")))) - { - schema = XmlSchema.Read(reader, null); - } - - schemaSet.Add(schema); - - - if (elementSelector != null) { - document.Validate(schemaSet, ((sender, args) => { - //do nothing just add schema info - }), true); - var element = elementSelector(document); - element.Validate(element.GetSchemaInfo().SchemaType, schemaSet, (sender, args) => { - error = true; - TestContext.WriteLine(sender?.ToString()); - TestContext.WriteLine(args.Message); - }); - } else { - document.Validate(schemaSet, (sender, args) => { - error = true; - - TestContext.WriteLine(sender?.ToString()); - TestContext.WriteLine(args.Message); - }); - } - - + var mrfStream = new MemoryStream(); + var mrfWriter = new XmlTextWriter(mrfStream, Encoding.UTF8); + document.WriteTo(mrfWriter); + mrfWriter.Flush(); + mrfStream.Flush(); + mrfStream.Seek(0, SeekOrigin.Begin); + var validator = new XMLValidator(new XmlTextReader(mrfStream)); + error = validator.ValidateXML(XmlDocumentType.CustomerReport | XmlDocumentType.ManufacturerReport); } finally { TestContext.WriteLine(document); } @@ -158,23 +116,6 @@ namespace TUGraz.VectoCore.Tests.XML.Reports } - private static XmlSchemaSet XmlSchemaSet(params (string path, string targetNamespace)[] paths) - { - XmlSchemaSet schemas = new XmlSchemaSet(); - foreach (var path in paths) { - using (XmlReader reader = new XmlTextReader(path.path) - { - XmlResolver = new XmlUrlResolver() - - }) - { - schemas.Add(path.targetNamespace, reader); - }; - - } - return schemas; - } - protected bool WriteToDisk(string basePath, string fileName, XDocument xDocument) { TestContext.WriteLine($"{basePath},{fileName}"); diff --git a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs index 5f30f334f2..f8871c9f14 100644 --- a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs +++ b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs @@ -15,7 +15,7 @@ using TUGraz.VectoMockup.Reports; namespace TUGraz.VectoMockup.Ninject { - internal class VIFMockupModule : AbstractNinjectModule + public class VIFMockupModule : AbstractNinjectModule { #region Overrides of NinjectModule @@ -40,11 +40,20 @@ namespace TUGraz.VectoMockup.Ninject #region Implementation of IVIFReportFactory - public IXMLPrimaryVehicleReport GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + public IXMLVehicleInformationFile GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, bool exempted, bool iepc, bool ihpc) { - return new MockupVIFReport( - _vifReportFactoryImplementation.GetVIFReport(vehicleType, jobType, archId, exempted, iepc, ihpc)); + switch (vehicleType) { + case VehicleCategory.HeavyBusPrimaryVehicle: + return new MockupPrimaryVehicleInformationFile( + _vifReportFactoryImplementation.GetVIFReport(vehicleType, jobType, archId, exempted, iepc, + ihpc)); + case VehicleCategory.HeavyBusCompletedVehicle: + return new MockupVehicleInformationFile( + _vifReportFactoryImplementation.GetVIFReport(vehicleType, jobType, archId, exempted, iepc, + ihpc)); + default: throw new ArgumentException(); + } } public IXmlTypeWriter GetConventionalVehicleType() diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs index 289e03d5e9..8318779ca7 100644 --- a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs +++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs @@ -108,7 +108,7 @@ namespace TUGraz.VectoMockup.Reports PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData, }; case VehicleCategory.HeavyBusPrimaryVehicle: - return new XMLDeclarationMockupPrimaryReport(outputDataWriter, _mrfFactory, _cifFactory, + return new XMLDeclarationMockupPrimaryReport(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, declarationInputDataProvider.JobInputData.Vehicle.ExemptedVehicle, declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); @@ -134,6 +134,8 @@ namespace TUGraz.VectoMockup.Reports public IManufacturerReportFactory MrfFactory => _mrfFactory; public ICustomerInformationFileFactory CifFactory => _cifFactory; + public IVIFReportFactory VifFactory => _vifFactory; + #endregion } @@ -141,5 +143,7 @@ namespace TUGraz.VectoMockup.Reports { IManufacturerReportFactory MrfFactory { get; } ICustomerInformationFileFactory CifFactory { get; } + + IVIFReportFactory VifFactory { get; } } } diff --git a/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs index 4d94b9f6aa..2c244ecb98 100644 --- a/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs +++ b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs @@ -11,13 +11,13 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; namespace TUGraz.VectoMockup.Reports { - public class MockupVIFReport : IXMLPrimaryVehicleReport, IXMLMockupReport + public class MockupVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport { private XDocument _report; private XNamespace _tns; - public MockupVIFReport(IXMLPrimaryVehicleReport vifReport) + public MockupVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFile) { } diff --git a/VectoMockup/VectoMockup/Reports/MockupPrimaryReport.cs b/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs similarity index 69% rename from VectoMockup/VectoMockup/Reports/MockupPrimaryReport.cs rename to VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs index 508f3a13e3..880a9c65a7 100644 --- a/VectoMockup/VectoMockup/Reports/MockupPrimaryReport.cs +++ b/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs @@ -15,17 +15,17 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; namespace TUGraz.VectoMockup.Reports { - internal class MockupPrimaryReport : IXMLPrimaryVehicleReport, IXMLMockupReport + internal class MockupPrimaryVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport { - private readonly IXMLPrimaryVehicleReport _primaryVehicleReportImplementation; + private readonly IXMLVehicleInformationFile _vehicleInformationFileImplementation; private VectoRunData _modelData; private XElement Results; - public MockupPrimaryReport(IXMLPrimaryVehicleReport primaryVehicleReportImplementation) + public MockupPrimaryVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFileImplementation) { - _primaryVehicleReportImplementation = primaryVehicleReportImplementation; - Results = new XElement(_primaryVehicleReportImplementation.Tns + XMLNames.Report_Results); + _vehicleInformationFileImplementation = vehicleInformationFileImplementation; + Results = new XElement(_vehicleInformationFileImplementation.Tns + XMLNames.Report_Results); } @@ -33,16 +33,16 @@ namespace TUGraz.VectoMockup.Reports public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { - _primaryVehicleReportImplementation.Initialize(modelData, fuelModes); + _vehicleInformationFileImplementation.Initialize(modelData, fuelModes); _modelData = modelData; } public void WriteResult(XMLDeclarationReport.ResultEntry result) { - _primaryVehicleReportImplementation.WriteResult(result); + _vehicleInformationFileImplementation.WriteResult(result); } - public XNamespace Tns => _primaryVehicleReportImplementation.Tns; + public XNamespace Tns => _vehicleInformationFileImplementation.Tns; #endregion @@ -69,14 +69,14 @@ namespace TUGraz.VectoMockup.Reports public void GenerateReport(XElement fullReportHash) { - _primaryVehicleReportImplementation.GenerateReport(fullReportHash); + _vehicleInformationFileImplementation.GenerateReport(fullReportHash); } public XDocument Report { get { - var report = _primaryVehicleReportImplementation.Report; + var report = _vehicleInformationFileImplementation.Report; var resultsElement = report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']"); resultsElement.First().ReplaceWith(Results); return report; diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs index 8bfa286065..802c187585 100644 --- a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs @@ -7,6 +7,7 @@ using TUGraz.VectoCore.OutputData.XML; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; namespace TUGraz.VectoMockup.Reports { @@ -16,10 +17,13 @@ namespace TUGraz.VectoMockup.Reports public XMLDeclarationMockupPrimaryReport(IReportWriter writer, IManufacturerReportFactory mrfFactory, - ICustomerInformationFileFactory cifFactory, bool exempted, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, + bool exempted, bool writePIF = false) : base(writer, mrfFactory, cifFactory, + vifFactory, writePIF) { _exempted = exempted; @@ -28,7 +32,7 @@ namespace TUGraz.VectoMockup.Reports protected override void InstantiateReports(VectoRunData modelData) { base.InstantiateReports(modelData); - PrimaryReport = new MockupPrimaryReport(PrimaryReport); + //VehicleInformationFile = new MockupPrimaryVehicleInformationFile(VehicleInformationFile); } #region Overrides of XMLDeclarationReportPrimaryVehicle_09 @@ -41,7 +45,7 @@ namespace TUGraz.VectoMockup.Reports protected override void WriteResult(ResultEntry result) { (ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result); - (PrimaryReport as IXMLMockupReport).WriteMockupResult(result); + (VehicleInformationFile as IXMLMockupReport).WriteMockupResult(result); } #endregion @@ -52,16 +56,16 @@ namespace TUGraz.VectoMockup.Reports { if (!_exempted) { (ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First()); - (PrimaryReport as IXMLMockupReport).WriteMockupSummary(Results.First()); + (VehicleInformationFile as IXMLMockupReport).WriteMockupSummary(Results.First()); } else { (ManufacturerRpt as IXMLMockupReport).WriteExemptedResults(); - (PrimaryReport as IXMLMockupReport).WriteExemptedResults(); + (VehicleInformationFile as IXMLMockupReport).WriteExemptedResults(); } ManufacturerRpt.GenerateReport(); var fullReportHash = CreateDummySig(); //CustomerRpt.GenerateReport(fullReportHash); - PrimaryReport.GenerateReport(fullReportHash); + VehicleInformationFile.GenerateReport(fullReportHash); } protected virtual XElement CreateDummySig() diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs index 40f5aeccd5..460b901031 100644 --- a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs +++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs @@ -6,6 +6,7 @@ using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; using TUGraz.VectoMockup.Reports; namespace TUGraz.VectoMockup.Simulation.SimulatorFactory @@ -18,12 +19,13 @@ namespace TUGraz.VectoMockup.Simulation.SimulatorFactory ISimulatorFactoryFactory simFactoryFactory, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, IXMLInputDataReader inputDataReader, bool validate) : base(originalStageInputData, originalReportWriter, originalDeclarationReport, simFactoryFactory, inputDataReader, validate) { _currentStageDeclarationReport = - new XMLDeclarationMockupPrimaryReport(_currentStageOutputDataWriter, mrfFactory, cifFactory, originalStageInputData.StageInputData.ExemptedVehicle,true); + new XMLDeclarationMockupPrimaryReport(_currentStageOutputDataWriter, mrfFactory, cifFactory, vifFactory, originalStageInputData.StageInputData.ExemptedVehicle,true); } #region Overrides of InterimAfterPrimaryFactoryCreator diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs index 0ef5b2f182..9320ffb9d3 100644 --- a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs +++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs @@ -121,6 +121,7 @@ namespace TUGraz.VectoMockup.Simulation.SimulatorFactory _simFactoryFactory, ((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).MrfFactory, ((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).CifFactory, + ((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).VifFactory, _xmlInputDataReader, Validate); case IMultistageVIFInputData multistageVifInputData: -- GitLab