diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs index 5e31641741d5d2d88287e620bc7972c9d429a025..64734f7a87b810bbdccfa417fe5118033fa2fa91 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs @@ -8,6 +8,9 @@ using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; 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.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory { @@ -54,6 +57,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory private readonly IDeclarationReport _originalDeclarationReport; private readonly IDeclarationInputDataProvider _currentStageInputData; + private readonly IManufacturerReportFactory _mrfFactory; + private readonly IVIFReportFactory _vifFactory; + public InterimAfterPrimaryFactoryCreator(IMultistagePrimaryAndStageInputDataProvider originalStageInputData, IOutputDataWriter originalReportWriter, IDeclarationReport originalDeclarationReport, diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs index 32f5b1d75561a1211946c585dc7e411cdaf32622..9ee76616a7223e4f70e29e4af23ea15f9a2c5539 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs @@ -247,7 +247,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory $"{validationErrors.Select(r => r.ErrorMessage + r.MemberNames.Join("; ")).Join("\n")}"); } } - + private static VectoRun GetVectoRun(VectoRunData data, IModalDataContainer modData, ISumData sumWriter) { VectoRun run; diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs index 740646b9f1e4dabdc9c4e81c13af75372ecc641c..d5593adef4db1dba489f21977ee3943c1dc07f89 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs @@ -4,6 +4,8 @@ using TUGraz.VectoCore.InputData; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory { @@ -15,6 +17,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory private IDeclarationReport _currentStageDeclarationReport; private IVTPReport _currentStageVTPReport; protected readonly IXMLDeclarationReportFactory _xmlDeclarationReportFactory; + private IVIFReportFactory _vifFactory; + private IManufacturerReportFactory _mrfFactory; @@ -34,7 +38,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory _currentStageInputData = dataProvider; _xmlDeclarationReportFactory = xmlDeclarationReportFactory; - _currentStageDeclarationReport = declarationReport ?? xmlDeclarationReportFactory.CreateReport(dataProvider, writer); _currentStageVTPReport = vtpReport ?? xmlDeclarationReportFactory.CreateVTPReport(dataProvider, writer); _followUpSimulatorFactoryCreator = CreateFollowUpFactoryCreator( diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs index 2a71aeeeba499abf6164fe939d24dac2396c47ea..c24b4bc62beab7a39f319b4c7603259f94b03776 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs @@ -32,6 +32,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Xml; using System.Xml.Linq; using NLog.Config; @@ -57,6 +58,8 @@ using TUGraz.VectoCore.Models.Declaration.Auxiliaries; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using LogManager = NLog.LogManager; +[assembly: InternalsVisibleTo("VectoCoreTest")] + namespace TUGraz.VectoCore.OutputData.XML { internal class XMLVTPReport : DeclarationReport<XMLVTPReport.ResultEntry>, IVTPReport diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs index 8befe015091ed8924495e0d6ee2665bc7360b3cf..9ce7b7f56b67a1680bc49fcbfda1e17dbc7f4645 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs @@ -48,7 +48,9 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Battery; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; namespace TUGraz.VectoCore.OutputData.XML { @@ -58,12 +60,16 @@ namespace TUGraz.VectoCore.OutputData.XML protected IXMLCustomerReport CustomerRpt; + protected readonly IManufacturerReportFactory _mrfFactory; + protected readonly ICustomerInformationFileFactory _cifFactory; + protected IDictionary<Tuple<MissionType, LoadingType>, double> _weightingFactors; - public XMLDeclarationReport(IReportWriter writer) : base(writer) + public XMLDeclarationReport(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory) : base(writer) { - throw new NotImplementedException("Use new implementation..."); + _mrfFactory = mrfFactory; + _cifFactory = cifFactory; } protected XMLDeclarationReport(IReportWriter writer, bool dummy) : base(writer) { } @@ -328,12 +334,24 @@ namespace TUGraz.VectoCore.OutputData.XML protected virtual void InstantiateReports(VectoRunData modelData) { - //if (modelData.Exempted) { - // ManufacturerRpt = new XMLManufacturerReportExemptedTruck(); - //} else { - // ManufacturerRpt = new XMLManufacturerReportTruck(); - //} - //CustomerRpt = new XMLCustomerReport(); + + var vehicleData = modelData.VehicleData.InputData; + var iepc = vehicleData.Components?.IEPC != null; + var ihpc = + vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; + + ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + CustomerRpt = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); } private static IDictionary<Tuple<MissionType, LoadingType>, double> ZeroWeighting => diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs index 44d3fdaa3513b689d2c4e506711b75846b9f26a0..e689c038a19b9b577fe27624508ae6494c6164de 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs @@ -5,39 +5,60 @@ using System.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; -namespace TUGraz.VectoCore.OutputData.XML { +namespace TUGraz.VectoCore.OutputData.XML +{ + /// <summary> + /// Create MRF and CIF of the complete(d) step + /// </summary> public class XMLDeclarationReportCompletedVehicle : XMLDeclarationReport { - public XMLDeclarationReportCompletedVehicle(IReportWriter writer) : base(writer, true) { } + #region Constructors + //public XMLDeclarationReportCompletedVehicle(IReportWriter writer) : base(writer) { } + public XMLDeclarationReportCompletedVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory) : base(writer, mrfFactory, cifFactory) + { + } - public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleReportInputData { get; set; } + #endregion - #region Overrides of XMLDeclarationReport + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleReportInputData { get; set; } + #region Overrides of XMLDeclarationReportCompletedVehicle protected override void InstantiateReports(VectoRunData modelData) { - ManufacturerRpt = modelData.Exempted - ? new XMLManufacturerReportExemptedCompletedBus() { - PrimaryVehicleRecordFile = PrimaryVehicleReportInputData - } - : new XMLManufacturerReportCompletedBus() { - PrimaryVehicleRecordFile = PrimaryVehicleReportInputData - }; - CustomerRpt = modelData.Exempted - ? new XMLCustomerReportExemptedCompletedBus() { - PrimaryVehicleRecordFile = PrimaryVehicleReportInputData - } - : new XMLCustomerReportCompletedBus() { - PrimaryVehicleRecordFile = PrimaryVehicleReportInputData - }; - } + var inputData = modelData.InputData as IXMLMultistageInputDataProvider; + var primaryVehicle = inputData.JobInputData.PrimaryVehicle.Vehicle; + + var ihpc = (primaryVehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (primaryVehicle.Components?.IEPC != null); + ManufacturerRpt = _mrfFactory.GetManufacturerReport( + inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + inputData.JobInputData.JobType, + primaryVehicle.ArchitectureID, + primaryVehicle.ExemptedVehicle, + iepc, + ihpc); + + CustomerRpt = _cifFactory.GetCustomerReport( + inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, + inputData.JobInputData.JobType, + primaryVehicle.ArchitectureID, + primaryVehicle.ExemptedVehicle, + iepc, + ihpc); + } public override void InitializeReport(VectoRunData modelData) { _weightingFactors = EqualWeighting; @@ -49,6 +70,8 @@ namespace TUGraz.VectoCore.OutputData.XML { } #endregion + + private static IDictionary<Tuple<MissionType, LoadingType>, double> EqualWeighting => new ReadOnlyDictionary<Tuple<MissionType, LoadingType>, double>( new Dictionary<Tuple<MissionType, LoadingType>, double>() { @@ -81,12 +104,14 @@ namespace TUGraz.VectoCore.OutputData.XML { protected internal override void DoWriteReport() { foreach (var specificResult in Results.Where(x => VehicleClassHelper.IsCompletedBus(x.VehicleClass)).OrderBy(x => x.VehicleClass) - .ThenBy(x => x.FuelMode).ThenBy(x => x.Mission)) { + .ThenBy(x => x.FuelMode).ThenBy(x => x.Mission)) + { var genericResult = Results.First(x => x.VehicleClass.IsPrimaryBus() && x.FuelMode == specificResult.FuelMode && - x.Mission == specificResult.Mission && x.LoadingType == specificResult.LoadingType); + x.Mission == specificResult.Mission && x.LoadingType == specificResult.LoadingType); var primaryResult = genericResult.PrimaryResult ?? specificResult.PrimaryResult; - if (primaryResult == null) { + if (primaryResult == null) + { throw new VectoException( "no primary result entry set for simulation run vehicle class: {0}, mission: {1}, payload: {2}", genericResult.VehicleClass, genericResult.Mission, genericResult.Payload); @@ -98,7 +123,8 @@ namespace TUGraz.VectoCore.OutputData.XML { GenerateReports(); - if (Writer != null) { + if (Writer != null) + { OutputReports(); } } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs index ea2f38e53a21bb634336e62aa22468ea56d6d3a8..a66c3846b9e4d98600cda063f07f9c34f408ec5a 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs @@ -36,7 +36,8 @@ namespace TUGraz.VectoCore.OutputData.XML case IMultistepBusInputDataProvider multistageBusInputDataProvider: break; case ISingleBusInputDataProvider singleBusInputDataProvider: - return new XMLDeclarationReportSingleBus09(outputWriter, _mrfFactory, _cifFactory); + throw new NotImplementedException(); + //return new XMLDeclarationReportSingleBus(outputWriter, _mrfFactory, _cifFactory); case IDeclarationInputDataProvider declarationInputDataProvider: return CreateDeclarationReport(declarationInputDataProvider, outputWriter); case IMultiStageTypeInputData multiStageTypeInputData: @@ -69,14 +70,14 @@ namespace TUGraz.VectoCore.OutputData.XML { if (multistageVifInputData.VehicleInputData == null) { - var reportCompleted = new XMLDeclarationReportCompletedVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory) + var reportCompleted = new XMLDeclarationReportCompletedVehicle(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory) { PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle, }; return reportCompleted; } else { - var report = new XMLDeclarationReportInterimVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, _vifInterimFactory); + var report = new XMLDeclarationReportInterimVehicle(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, _vifInterimFactory); return report; } } @@ -87,19 +88,19 @@ namespace TUGraz.VectoCore.OutputData.XML var vehicleCategory = declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory; if (vehicleCategory.IsLorry()) { - return new XMLDeclarationReport09(outputDataWriter, _mrfFactory, _cifFactory); + return new XMLDeclarationReport(outputDataWriter, _mrfFactory, _cifFactory); } if (vehicleCategory.IsBus()) switch (declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory) { case VehicleCategory.HeavyBusCompletedVehicle: - return new XMLDeclarationReportCompletedVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory) + return new XMLDeclarationReportCompletedVehicle(outputDataWriter,_mrfFactory,_cifFactory,_vifFactory) { PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData, }; case VehicleCategory.HeavyBusPrimaryVehicle: - return new XMLDeclarationReportPrimaryVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory); + return new XMLDeclarationReportPrimaryVehicle(outputDataWriter, _mrfFactory, _vifFactory); default: break; diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportInterimVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportInterimVehicle.cs new file mode 100644 index 0000000000000000000000000000000000000000..34f35a5a02effe8a22a68780941f94adeaf7d884 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportInterimVehicle.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +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; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; + +namespace TUGraz.VectoCore.OutputData.XML +{ + /// <summary> + /// Create VIF of an interim (or the complete(d) step + /// </summary> + public class XMLDeclarationReportInterimVehicle : XMLDeclarationReport + { + protected readonly IVIFReportFactory _vifFactory; + + protected IXMLMultistepIntermediateReport MultistepIntermediateBusReport; + protected readonly IVIFReportInterimFactory _interimFactory; + + public XMLDeclarationReportInterimVehicle(IReportWriter writer, + IManufacturerReportFactory mrfFactory, + ICustomerInformationFileFactory cifFactory, + IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory) : base(writer, mrfFactory, cifFactory) + { + _vifFactory = vifFactory; + _interimFactory = interimFactory; + } + + #region Overrides of XMLDeclarationReport + + protected override void InstantiateReports(VectoRunData modelData) + { + var vehicleData = modelData.VehicleData.InputData; + var iepc = vehicleData.Components?.IEPC != null; + var ihpc = + vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; + + MultistepIntermediateBusReport = _interimFactory.GetInterimVIFReport(vehicleData.VehicleCategory, + vehicleData.VehicleType, + vehicleData.ArchitectureID, + vehicleData.ExemptedVehicle, + iepc, + ihpc); + } + + #endregion + + public override void InitializeReport(VectoRunData modelData) + { + //_multistageBusReport = + // modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport(); + + InstantiateReports(modelData); + + MultistepIntermediateBusReport.Initialize(modelData); + } + + protected override void GenerateReports() + { + MultistepIntermediateBusReport.GenerateReport(); + } + + protected override void OutputReports() + { + Writer.WriteReport(ReportType.DeclarationReportMultistageVehicleXML, MultistepIntermediateBusReport.Report); + } + + protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + throw new NotSupportedException(); + } + protected override void WriteResult(ResultEntry result) + { + throw new NotSupportedException(); + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs new file mode 100644 index 0000000000000000000000000000000000000000..26aab4fc01faa04e468de6c5e075a8a2bcfcdcce --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; + +namespace TUGraz.VectoCore.OutputData.XML +{ + /// <summary> + /// Create VIF of an interim (or the complete(d) step + /// </summary> + public class XMLDeclarationReportMultistageBusVehicle : XMLDeclarationReport + { + protected IXMLMultistepIntermediateReport _multistageBusReport; + + public XMLDeclarationReportMultistageBusVehicle(IReportWriter writer) + : base(writer, null,null) + { + throw new NotImplementedException(); + //throw new VectoException("Used here"); + //_multistageBusReport = new XMLMultistageBusReport(); + } + + public override void InitializeReport(VectoRunData modelData) + { + _multistageBusReport = + modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport(); + _multistageBusReport.Initialize(modelData); + } + + protected override void GenerateReports() + { + _multistageBusReport.GenerateReport(); + } + + protected override void OutputReports() + { + Writer.WriteReport(ReportType.DeclarationReportMultistageVehicleXML, _multistageBusReport.Report); + } + + protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) + { + throw new NotSupportedException(); + } + protected override void WriteResult(ResultEntry result) + { + throw new NotSupportedException(); + } + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs index 07dbb4d0ee70e2200d5e9f93d3aedfc6f37e5f24..cabd3946ee55772e626abd13e499012985adc1e7 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs @@ -1,40 +1,61 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Xml.Linq; using TUGraz.VectoCore.Models.Simulation.Data; -using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; -using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport; +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 { +namespace TUGraz.VectoCore.OutputData.XML +{ + /// <summary> + /// Create MRF and VIF for primary bus + /// </summary> public class XMLDeclarationReportPrimaryVehicle : XMLDeclarationReport { - protected IXMLVehicleInformationFile VehicleInformationFile; + private readonly IVIFReportFactory _vifFactory; + protected IXMLVehicleInformationFile VehicleInformationFile; - public XMLDeclarationReportPrimaryVehicle(IReportWriter writer) : base(writer, true) - { - throw new NotSupportedException("Use new implementation!"); - } public override XDocument CustomerReport => null; public override XDocument PrimaryVehicleReport => VehicleInformationFile?.Report; + + public XMLDeclarationReportPrimaryVehicle(IReportWriter writer, + IManufacturerReportFactory mrfFactory, + IVIFReportFactory vifFactory) : base(writer, mrfFactory, null) + { + _vifFactory = vifFactory; + } + - #region Overrides of XMLDeclarationReport + #region Overrides of XMLDeclarationReport protected override void InstantiateReports(VectoRunData modelData) { - if (modelData.Exempted) { - ManufacturerRpt = new XMLManufacturerReportExeptedPrimaryBus(); - CustomerRpt = new XMLCustomerReportExemptedPrimaryBus(); - VehicleInformationFile = new XMLExemptedPrimaryBusVehicleReport(); + var vehicleData = modelData.VehicleData.InputData; + var iepc = vehicleData.Components?.IEPC != null; + var ihpc = + vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; - } else { - ManufacturerRpt = new XMLManufacturerReportPrimaryBus(); - CustomerRpt = new XMLCustomerReport(); - VehicleInformationFile = new XMLPrimaryBusVehicleReport(); - } + 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); + + } @@ -44,9 +65,6 @@ namespace TUGraz.VectoCore.OutputData.XML { base.InitializeReport(modelData); VehicleInformationFile.Initialize(modelData); } - - - protected override void WriteResult(ResultEntry result) { base.WriteResult(result); @@ -61,14 +79,13 @@ namespace TUGraz.VectoCore.OutputData.XML { VehicleInformationFile.GenerateReport(fullReportHash); } - + protected override void OutputReports() { Writer.WriteReport(ReportType.DeclarationReportManufacturerXML, ManufacturerRpt.Report); Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, VehicleInformationFile.Report); } - #endregion } } \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs deleted file mode 100644 index 793ada402ec842a99348ba58b8d8a08f8e50eb89..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs +++ /dev/null @@ -1,279 +0,0 @@ -using System; -using System.Linq; -using System.Xml.Linq; -using TUGraz.VectoCommon.Models; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; -using TUGraz.VectoCore.Models.Simulation.Data; -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; -using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; - -namespace TUGraz.VectoCore.OutputData.XML -{ - /// <summary> - /// Create MRF and VIF for primary bus - /// </summary> - public class XMLDeclarationReportPrimaryVehicle_09 : XMLDeclarationReport09 - { - private readonly IManufacturerReportFactory _mrfFactory; - private readonly IVIFReportFactory _vifFactory; - - protected IXMLVehicleInformationFile VehicleInformationFile; - - public override XDocument CustomerReport => null; - - public override XDocument PrimaryVehicleReport => VehicleInformationFile?.Report; - - public XMLDeclarationReportPrimaryVehicle_09(IReportWriter writer, - IManufacturerReportFactory mrfFactory, - ICustomerInformationFileFactory cifFactory, - IVIFReportFactory vifFactory) : base(writer, mrfFactory, cifFactory) - { - _mrfFactory = mrfFactory; - //_cifFactory = cifFactory; - _vifFactory = vifFactory; - } - - public override void InitializeReport(VectoRunData modelData) - { - base.InitializeReport(modelData); - VehicleInformationFile.Initialize(modelData); - } - - - - protected override void WriteResult(ResultEntry result) - { - ManufacturerRpt.WriteResult(result); - //base.WriteResult(result); - VehicleInformationFile.WriteResult(result); - } - - protected override void GenerateReports() - { - ManufacturerRpt.GenerateReport(); - var fullReportHash = GetSignature(ManufacturerRpt.Report); - //CustomerRpt.GenerateReport(fullReportHash); - VehicleInformationFile.GenerateReport(fullReportHash); - } - - - - protected override void OutputReports() - { - Writer.WriteReport(ReportType.DeclarationReportManufacturerXML, ManufacturerRpt.Report); - Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, VehicleInformationFile.Report); - } - - - - protected override void InstantiateReports(VectoRunData modelData) - { - var vehicleData = modelData.VehicleData.InputData; - var iepc = vehicleData.Components?.IEPC != null; - var ihpc = - vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; - - 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); - - - } - - } - - // -------------------------------------------------- - - /// <summary> - /// Create VIF of an interim (or the complete(d) step - /// </summary> - public class XMLDeclarationReportInterimVehicle_09 : XMLDeclarationReport09 - { - protected readonly IVIFReportFactory _vifFactory; - - protected IXMLMultistepIntermediateReport MultistepIntermediateBusReport; - protected readonly IVIFReportInterimFactory _interimFactory; - - public XMLDeclarationReportInterimVehicle_09(IReportWriter writer, - IManufacturerReportFactory mrfFactory, - ICustomerInformationFileFactory cifFactory, - IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory) : base(writer, mrfFactory, cifFactory) - { - _vifFactory = vifFactory; - _interimFactory = interimFactory; - } - - #region Overrides of XMLDeclarationReport - - protected override void InstantiateReports(VectoRunData modelData) - { - var vehicleData = modelData.VehicleData.InputData; - var iepc = vehicleData.Components?.IEPC != null; - var ihpc = - vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; - - MultistepIntermediateBusReport = _interimFactory.GetInterimVIFReport(vehicleData.VehicleCategory, - vehicleData.VehicleType, - vehicleData.ArchitectureID, - vehicleData.ExemptedVehicle, - iepc, - ihpc); - } - - #endregion - - public override void InitializeReport(VectoRunData modelData) - { - //_multistageBusReport = - // modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport(); - - InstantiateReports(modelData); - - MultistepIntermediateBusReport.Initialize(modelData); - } - - protected override void GenerateReports() - { - MultistepIntermediateBusReport.GenerateReport(); - } - - protected override void OutputReports() - { - Writer.WriteReport(ReportType.DeclarationReportMultistageVehicleXML, MultistepIntermediateBusReport.Report); - } - - protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) - { - throw new NotSupportedException(); - } - protected override void WriteResult(ResultEntry result) - { - throw new NotSupportedException(); - } - } - - - // -------------------------------------------------- - - /// <summary> - /// Create MRF and CIF of the complete(d) step - /// </summary> - public class XMLDeclarationReportCompletedVehicle_09 : XMLDeclarationReportCompletedVehicle - { - protected readonly ICustomerInformationFileFactory _cifFactory; - protected readonly IManufacturerReportFactory _mrfFactory; - - public XMLDeclarationReportCompletedVehicle_09(IReportWriter writer, IManufacturerReportFactory mrfFactory, - ICustomerInformationFileFactory cifFactory, - IVIFReportFactory vifFactory) : base(writer) - { - _cifFactory = cifFactory; - _mrfFactory = mrfFactory; - } - - #region Overrides of XMLDeclarationReportCompletedVehicle - - protected override void InstantiateReports(VectoRunData modelData) - { - var inputData = modelData.InputData as IXMLMultistageInputDataProvider; - var primaryVehicle = inputData.JobInputData.PrimaryVehicle.Vehicle; - - var ihpc = (primaryVehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; - var iepc = (primaryVehicle.Components?.IEPC != null); - ManufacturerRpt = _mrfFactory.GetManufacturerReport( - inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, - inputData.JobInputData.JobType, - primaryVehicle.ArchitectureID, - primaryVehicle.ExemptedVehicle, - iepc, - ihpc); - - CustomerRpt = _cifFactory.GetCustomerReport( - inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory, - inputData.JobInputData.JobType, - primaryVehicle.ArchitectureID, - primaryVehicle.ExemptedVehicle, - iepc, - ihpc); - - } - - #endregion - } - // -------------------------------------------------- - - /// <summary> - /// Create MRF and CIF for lorries - /// </summary> - public class XMLDeclarationReport09 : XMLDeclarationReport - { - protected readonly IManufacturerReportFactory _mrfFactory; - protected readonly ICustomerInformationFileFactory _cifFactory; - - public XMLDeclarationReport09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory) : base(writer, true) - { - _mrfFactory = mrfFactory; - _cifFactory = cifFactory; - } - - protected override void InstantiateReports(VectoRunData modelData) - { - var vehicleData = modelData.VehicleData.InputData; - var iepc = vehicleData.Components?.IEPC != null; - var ihpc = - vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; - - ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory, - vehicleData.VehicleType, - vehicleData.ArchitectureID, - vehicleData.ExemptedVehicle, - iepc, - ihpc); - CustomerRpt = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory, - vehicleData.VehicleType, - vehicleData.ArchitectureID, - vehicleData.ExemptedVehicle, - iepc, - ihpc); - } - - } - - - public class XMLDeclarationReportSingleBus09 : XMLDeclarationReport09 - { - - public XMLDeclarationReportSingleBus09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory) : base(writer, mrfFactory, cifFactory) - { } - - protected override void InstantiateReports(VectoRunData modelData) - { - var vehicleData = modelData.VehicleData.InputData; - var iepc = vehicleData.Components?.IEPC != null; - var ihpc = - vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0; - - ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory, - vehicleData.VehicleType, - vehicleData.ArchitectureID, - vehicleData.ExemptedVehicle, - iepc, - ihpc); - // do not instantiate customer report for single bus - not fully implemented, not needed in the final application - } - - } - -} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs index 43004369b96d719e722096eb5bd0318b8ab07ac8..34ca1a50f9e547c5529a40dd69396f6c098d61e6 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs @@ -74,6 +74,8 @@ public class LorrySimulation private StandardKernel _kernel; private IXMLInputDataReader _xmlReader; + private XmlSchemaSet _cifSchema = XMLValidator.GetXMLSchema(XmlDocumentType.CustomerReport); + private XmlSchemaSet _mrfSchema = XMLValidator.GetXMLSchema(XmlDocumentType.ManufacturerReport); [OneTimeSetUp] public void OneTimeSetup() @@ -153,10 +155,8 @@ public class LorrySimulation var mrfPath = fileWriter.GetWrittenFiles()[ReportType.DeclarationReportManufacturerXML]; var cifPath = fileWriter.GetWrittenFiles()[ReportType.DeclarationReportCustomerXML]; - var cifSchema = XMLValidator.GetXMLSchema(XmlDocumentType.CustomerReport); - var mrfSchema = XMLValidator.GetXMLSchema(XmlDocumentType.ManufacturerReport); - XDocument.Load(mrfPath).Validate(mrfSchema, (sender, args) => Assert.Fail(args.Message)); - XDocument.Load(cifPath).Validate(cifSchema, (sender, args) => Assert.Fail(args.Message)); + XDocument.Load(mrfPath).Validate(_mrfSchema, (sender, args) => Assert.Fail(args.Message)); + XDocument.Load(cifPath).Validate(_cifSchema, (sender, args) => Assert.Fail(args.Message)); VSUM_order_test(fileWriter.SumFileName, jobContainer.Runs.First().Run.GetContainer().RunData); } @@ -940,7 +940,7 @@ public class LorrySimulation if (report == null) { return; //also used in engineering mode } - if (report is XMLDeclarationReport09 rep09) { + if (report is XMLDeclarationReport rep09) { GetField("_resultCount", rep09.GetType()).SetValue(rep09, count); diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs index 8e4b47af188ab43d1b31cf8ad8aa5de9232a1102..483ad9a886e1d641ba93940f13d3da7c3f883a90 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs @@ -22,6 +22,8 @@ using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; using TUGraz.VectoCore.Tests.Integration.Declaration; using TUGraz.VectoCore.Tests.Models.Simulation; using TUGraz.VectoCore.Utils; @@ -427,8 +429,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var writer = new FileOutputWriter(outputFile); - var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); - var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var mrfFactory = _kernel.Get<IManufacturerReportFactory>(); + var vifFactory = _kernel.Get<IVIFReportFactory>(); + var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer, mrfFactory, vifFactory); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport); factory.WriteModalResults = true; factory.Validate = false; diff --git a/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs b/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs index b8f1581e11e5998d7beb0d4ae7b3f930d7b8beb1..95cfdbeb27d0910188e5b767d0ca7571cc8fc3ec 100644 --- a/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs +++ b/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs @@ -49,6 +49,8 @@ using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; 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.ManufacturerReportXMLTypeWriter; using TUGraz.VectoCore.Tests.Utils; using TUGraz.VectoCore.Tests.XML; using TUGraz.VectoCore.Utils; @@ -100,9 +102,9 @@ namespace TUGraz.VectoCore.Tests.Integration // no need to run the simulation, we only check whether the meta-data is correct, no results are considered //jobContainer.Execute(); //jobContainer.WaitFinished(); - (xmlReport as XMLDeclarationReport09).DoWriteReport(); + (xmlReport as XMLDeclarationReport).DoWriteReport(); - var manufacturerReport = (xmlReport as XMLDeclarationReport09).FullReport; + var manufacturerReport = (xmlReport as XMLDeclarationReport).FullReport; Assert.AreEqual(5, manufacturerReport.XPathSelectElement("//*[local-name()='VehicleGroup']")?.Value.ToInt()); @@ -155,9 +157,9 @@ namespace TUGraz.VectoCore.Tests.Integration // no need to run the simulation, we only check whether the meta-data is correct, no results are considered jobContainer.Execute(); jobContainer.WaitFinished(); - (xmlReport as XMLDeclarationReport09).DoWriteReport(); + (xmlReport as XMLDeclarationReport).DoWriteReport(); - var customerReport = (xmlReport as XMLDeclarationReport09).CustomerReport; + var customerReport = (xmlReport as XMLDeclarationReport).CustomerReport; //check if the customerReport contains the summary XML-Element Assert.AreNotEqual(null,customerReport.XPathSelectElement("//*[local-name()='Summary']")); @@ -189,10 +191,10 @@ namespace TUGraz.VectoCore.Tests.Integration jobContainer.Execute(); jobContainer.WaitFinished(); - var mrfValidator = GetValidator((xmlReport as XMLDeclarationReport09).FullReport); + var mrfValidator = GetValidator((xmlReport as XMLDeclarationReport).FullReport); mrfValidator.ValidateXML(XmlDocumentType.DeclarationComponentData | XmlDocumentType.DeclarationJobData | XmlDocumentType.CustomerReport | XmlDocumentType.ManufacturerReport); - var cifValidator = GetValidator((xmlReport as XMLDeclarationReport09).CustomerReport); + var cifValidator = GetValidator((xmlReport as XMLDeclarationReport).CustomerReport); cifValidator.ValidateXML(XmlDocumentType.DeclarationComponentData | XmlDocumentType.DeclarationJobData | XmlDocumentType.CustomerReport | XmlDocumentType.ManufacturerReport); //var monitoringValidator = GetValidator(xmlReport.MonitoringReport); @@ -278,9 +280,9 @@ namespace TUGraz.VectoCore.Tests.Integration //}; jobContainer.AddRuns(runsFactory); - (xmlReport as XMLDeclarationReport09).DoWriteReport(); + (xmlReport as XMLDeclarationReport).DoWriteReport(); - var manufacturerReport = (xmlReport as XMLDeclarationReport09).FullReport; + var manufacturerReport = (xmlReport as XMLDeclarationReport).FullReport; Assert.AreEqual( ptoGearWheel != "none", @@ -318,23 +320,23 @@ namespace TUGraz.VectoCore.Tests.Integration // no need to run the simulation, we only check whether the meta-data is correct, no results are considered //jobContainer.Execute(); //jobContainer.WaitFinished(); - (xmlReport as XMLDeclarationReport09).DoWriteReport(); + (xmlReport as XMLDeclarationReport).DoWriteReport(); var inputHash = VectoHash.Load(jobfile); - var mrfDigestData = new DigestData((xmlReport as XMLDeclarationReport09).FullReport.Document.XPathSelectElement("//*[local-name()='InputDataSignature']")); + var mrfDigestData = new DigestData((xmlReport as XMLDeclarationReport).FullReport.Document.XPathSelectElement("//*[local-name()='InputDataSignature']")); var mrfInputDigest = inputHash.ComputeHash(mrfDigestData.CanonicalizationMethods, mrfDigestData.DigestMethod); Assert.AreEqual(mrfInputDigest, mrfDigestData.DigestValue); - var cifDigestData = new DigestData((xmlReport as XMLDeclarationReport09).CustomerReport.Document.XPathSelectElement("//*[local-name()='InputDataSignature']")); + var cifDigestData = new DigestData((xmlReport as XMLDeclarationReport).CustomerReport.Document.XPathSelectElement("//*[local-name()='InputDataSignature']")); var cifInputDigest = inputHash.ComputeHash(cifDigestData.CanonicalizationMethods, cifDigestData.DigestMethod); Assert.AreEqual(cifInputDigest, cifDigestData.DigestValue); var mrfHash = VectoHash.Load(writer.XMLFullReportName); - var mrfCifDigestData = new DigestData((xmlReport as XMLDeclarationReport09).CustomerReport.Document.XPathSelectElement("//*[local-name()='ManufacturerRecordSignature']")); + var mrfCifDigestData = new DigestData((xmlReport as XMLDeclarationReport).CustomerReport.Document.XPathSelectElement("//*[local-name()='ManufacturerRecordSignature']")); var mrfCifDigest = mrfHash.ComputeHash(mrfCifDigestData.CanonicalizationMethods, mrfCifDigestData.DigestMethod); Assert.AreEqual(mrfCifDigest, mrfCifDigestData.DigestValue); @@ -367,7 +369,7 @@ namespace TUGraz.VectoCore.Tests.Integration // no need to run the simulation, we only check whether the meta-data is correct, no results are considered //jobContainer.Execute(); //jobContainer.WaitFinished(); - (xmlReport as XMLDeclarationReport09).DoWriteReport(); + (xmlReport as XMLDeclarationReport).DoWriteReport(); } } } diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs index 65a174c01fb33e6fd621299405062ca63e3a02d7..169f6f2b96419dfb4a013bd52e5884dfefcb81bf 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs @@ -11,6 +11,8 @@ using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; 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.ManufacturerReportXMLTypeWriter; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter @@ -60,7 +62,6 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter var xmlReport = _kernel.Get<IXMLDeclarationReportFactory>().CreateReport(dataProvider, writer); var sumData = new SummaryDataContainer(null); var jobContainer = new JobContainer(sumData); - var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, null, xmlReport); runsFactory.WriteModalResults = false; runsFactory.Validate = false; @@ -69,9 +70,9 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter // no need to run the simulation, we only check whether the meta-data is correct, no results are considered //jobContainer.Execute(); //jobContainer.WaitFinished(); - (xmlReport as XMLDeclarationReport09).DoWriteReport(); + (xmlReport as XMLDeclarationReport).DoWriteReport(); - var manufacturerReport = (xmlReport as XMLDeclarationReport09).FullReport; + var manufacturerReport = (xmlReport as XMLDeclarationReport).FullReport; Assert.IsFalse(XmlConvert.ToBoolean(manufacturerReport.XPathSelectElement(XMLHelper.QueryLocalName(XMLNames.Vehicle_VocationalVehicle))?.Value ?? "")); } diff --git a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs index 09b4c268ea9538a93ff014b903a46b69f622f854..0540795ba72d3af2137cbdc3e4b6b95d3562b200 100644 --- a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs +++ b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs @@ -53,6 +53,8 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; namespace TUGraz.VectoCore.Tests.Reports { diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs index 7d35d9451f2a52e0e790076380920d5526e2f7fd..e841f6e9fc8155059206e663083117772cd31ba2 100644 --- a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs +++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs @@ -41,7 +41,7 @@ namespace TUGraz.VectoMockup.Reports case IMultistepBusInputDataProvider multistageBusInputDataProvider: break; case ISingleBusInputDataProvider singleBusInputDataProvider: - return new XMLDeclarationReport(outputWriter); + return new XMLDeclarationReport(outputWriter, _mrfFactory, _cifFactory); case IDeclarationInputDataProvider declarationInputDataProvider: return CreateDeclarationReport(declarationInputDataProvider, outputWriter); case IMultiStageTypeInputData multiStageTypeInputData: @@ -106,7 +106,8 @@ namespace TUGraz.VectoMockup.Reports { case VehicleCategory.HeavyBusCompletedVehicle: throw new NotImplementedException(); - return new XMLDeclarationReportCompletedVehicle(outputDataWriter) + return new XMLDeclarationReportCompletedVehicle(outputDataWriter, _mrfFactory, _cifFactory, + _vifFactory) { PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData, }; diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs index be9a19230fac2c216501ae1ee1f2f120676780e5..774218a674bf7fd6e349d2a0e193ccb7afe56642 100644 --- a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs @@ -15,7 +15,7 @@ namespace TUGraz.VectoMockup.Reports /// <summary> /// Create MRF and VIF for primary bus /// </summary> - public class XMLDeclarationMockupPrimaryReport : XMLDeclarationReportPrimaryVehicle_09 + public class XMLDeclarationMockupPrimaryReport : XMLDeclarationReportPrimaryVehicle { private readonly bool _exempted; @@ -25,13 +25,12 @@ namespace TUGraz.VectoMockup.Reports IVIFReportFactory vifFactory, bool exempted) : base(writer, mrfFactory, - cifFactory, vifFactory) { _exempted = exempted; } - #region Overrides of XMLDeclarationReportPrimaryVehicle_09 + #region Overrides of XMLDeclarationReportPrimaryVehicle protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData) { diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs index 8625f3474be64a73d13de775ecfbf07e5022e97b..6b73c358e49cbe6bdb626493d4330be13ce80e7d 100644 --- a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs @@ -15,7 +15,7 @@ namespace TUGraz.VectoMockup.Reports /// <summary> /// Create MRF and CIF for lorries /// </summary> - internal class XMLDeclarationMockupReport : XMLDeclarationReport09 + internal class XMLDeclarationMockupReport : XMLDeclarationReport { private readonly bool _exempted; diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs index 0703c33dc2efbb98ef8838cfe86cd4e704be58dc..bd25165ae8cf62bf044bde24ba00a7b94d85f9fa 100644 --- a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs +++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs @@ -20,7 +20,7 @@ namespace TUGraz.VectoMockup.Reports /// <summary> /// Create VIF of an interim (or the complete(d) step /// </summary> - public class XMLDeclarationMockupReportInterimVehicle : XMLDeclarationReportInterimVehicle_09 + public class XMLDeclarationMockupReportInterimVehicle : XMLDeclarationReportInterimVehicle { private readonly bool _exempted; @@ -37,7 +37,7 @@ namespace TUGraz.VectoMockup.Reports /// <summary> /// Create MRF and CIF of the complete(d) step /// </summary> - public class XMLDeclarationMockupReportCompletedVehicle : XMLDeclarationReportCompletedVehicle_09 + public class XMLDeclarationMockupReportCompletedVehicle : XMLDeclarationReportCompletedVehicle { //private readonly IManufacturerReportFactory _mrfFactory; //private readonly ICustomerInformationFileFactory _cifFactory;