From 90f6b1c6522ea45110e9a201c8f916772d0aded2 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <quaritsch@ivt.tugraz.at>
Date: Thu, 9 Mar 2023 16:03:10 +0100
Subject: [PATCH] adding binding and dummy mockup result writer

---
 .../VectoCore/Mockup/Ninject/MockupModule.cs  |  2 +
 .../Reports/MockupReportResultsFactory.cs     | 52 +++++++++++++++++++
 2 files changed, 54 insertions(+)
 create mode 100644 VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs

diff --git a/VectoCore/VectoCore/Mockup/Ninject/MockupModule.cs b/VectoCore/VectoCore/Mockup/Ninject/MockupModule.cs
index 993f9b86a2..f13ab0ae5e 100644
--- a/VectoCore/VectoCore/Mockup/Ninject/MockupModule.cs
+++ b/VectoCore/VectoCore/Mockup/Ninject/MockupModule.cs
@@ -8,6 +8,7 @@ using TUGraz.VectoCore;
 using TUGraz.VectoCore.InputData;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common;
 using TUGraz.VectoMockup.Reports;
 using TUGraz.VectoMockup.Simulation.RundataFactories;
 
@@ -27,6 +28,7 @@ namespace TUGraz.VectoMockup.Ninject
 			Rebind<IVectoRunDataFactoryFactory>().To<VectoMockUpRunDataFactoryFactory>();
 			Rebind<IXMLDeclarationReportFactory>().To<MockupReportFactory>();
 			Rebind<IXMLInputDataReader>().To<MockupXMLInputDataFactory>();
+			Rebind<IResultsWriterFactory>().To<MockupReportResultsFactory>().InSingletonScope();
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs b/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs
new file mode 100644
index 0000000000..0f1786e232
--- /dev/null
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common;
+
+namespace TUGraz.VectoMockup.Reports
+{
+	class MockupReportResultsFactory : IResultsWriterFactory
+	{
+		#region Implementation of IResultsWriterFactory
+
+		public IResultsWriter GetCIFResultsWriter(string vehicleCategory, VectoSimulationJobType jobType, bool ovc, bool exempted)
+		{
+			return new MockupDummyResultsWriter(XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"));
+		}
+
+		public IResultsWriter GetMRFResultsWriter(string vehicleCategory, VectoSimulationJobType jobType, bool ovc, bool exempted)
+		{
+			return new MockupDummyResultsWriter(XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"));
+		}
+
+		public IResultsWriter GetVIFResultsWriter(string vehicleCategory, VectoSimulationJobType jobType, bool ovc, bool exempted)
+		{
+			return new MockupDummyResultsWriter(XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"));
+		}
+
+		#endregion
+	}
+
+	internal class MockupDummyResultsWriter : IResultsWriter
+	{
+		private readonly XNamespace TNS;
+
+		public MockupDummyResultsWriter(XNamespace ns)
+		{
+			TNS = ns;
+		}
+
+		#region Implementation of IResultsWriter
+
+		public XElement GenerateResults(List<IResultEntry> results)
+		{
+			// only return a single 'Results' element - will be replaced in Mockup Report
+			return new XElement(TNS + "Results");
+		}
+
+		#endregion
+	}
+
+}
\ No newline at end of file
-- 
GitLab