From d94df81c49a0b36dc3556428132d64bd4b817bce Mon Sep 17 00:00:00 2001
From: "harald.martini@student.tugraz.at" <harald.martini@student.tugraz.at>
Date: Wed, 13 Oct 2021 10:21:20 +0200
Subject: [PATCH] Removed Override of ReportWriter Property, inject
 IXMLInputDataReader and ISimulatorFactoryFactory

---
 .../SimulatorFactoryDeclaration.cs            | 25 ++++++-------------
 .../SimulatorFactoryEngineering.cs            |  5 ----
 2 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
index 4cdc0bfa28..4a43794643 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
@@ -21,14 +21,19 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 {
     public class SimulatorFactoryDeclaration : SimulatorFactory
     {
-		//private readonly ISimulatorFactoryFactory _simFactoryFactory;
+		private readonly IXMLInputDataReader _xmlInputDataReader;
+		private readonly ISimulatorFactoryFactory _simFactoryFactory;
 
 		public SimulatorFactoryDeclaration(IInputDataProvider dataProvider, 
 			IOutputDataWriter writer,
 			IDeclarationReport declarationReport, 
 			IVTPReport vtpReport,
+			IXMLInputDataReader xmlInputDataReader,
+			ISimulatorFactoryFactory simulatorFactoryFactory,
 			bool validate) : base(ExecutionMode.Declaration, writer, validate)
 		{
+			_xmlInputDataReader = xmlInputDataReader;
+			_simFactoryFactory = simulatorFactoryFactory;
 			_simulate = CanBeSimulated(dataProvider);
 			CreateDeclarationDataReader(dataProvider, declarationReport, vtpReport);
 		}
@@ -87,12 +92,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 						DataReader = new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report);
 
 						_followingSimulatorFactoryCreator = () => {
-							var container = new StandardKernel(
-								new VectoNinjectModule()
-							);
-							var inputDataReader = container.Get<IXMLInputDataReader>();
-							var inputData =
-								inputDataReader.CreateDeclaration(
+							var inputData = _xmlInputDataReader.CreateDeclaration(
 									XmlReader.Create(ReportWriter.MultistageXmlReport.ToString().ToStream()));
 #pragma warning disable 618
 							return CreateSimulatorFactory(_mode, new XMLDeclarationVIFInputData(inputData as IMultistageBusInputDataProvider, null), ReportWriter, report, vtpReport, Validate);
@@ -119,13 +119,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 					CreateFollowUpSimulatorFactory = true;
 					_followingSimulatorFactoryCreator = (() => {
 						//replace with dependency injection 
-						var container = new StandardKernel(
-							new VectoNinjectModule()
-						);
 						try
 						{
-							var inputDataReader = container.Get<IXMLInputDataReader>();
-							var primaryInputData = inputDataReader.CreateDeclaration(tempOutputWriter
+							var primaryInputData = _xmlInputDataReader.CreateDeclaration(tempOutputWriter
 								.GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader());
 							//var primaryInputData = inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter).XMLPrimaryVehicleReportName);
 							var vifInputData = new XMLDeclarationVIFInputData(
@@ -218,10 +214,5 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 				$"Could not create RunDataFactory for Vehicle Category{vtpProvider.JobInputData.Vehicle.VehicleCategory}");
 		}
 
-		#region Overrides of SimulatorFactory
-
-		public override IOutputDataWriter ReportWriter { get; protected set; }
-
-		#endregion
 	}
 }
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs
index 49033e9301..74f39e3eea 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs
@@ -38,10 +38,5 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			}
 		}
 
-		#region Overrides of SimulatorFactory
-
-		public override IOutputDataWriter ReportWriter { get; protected set; }
-
-		#endregion
 	}
 }
-- 
GitLab