Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 6c1da729 authored by Harald Martini's avatar Harald Martini
Browse files

AddedVectoRunDataFactory, renamed SimulationFactoryNinjectModule

parent 4408bb86
Branches
Tags v0.6.0
No related merge requests found
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TUGraz.VectoCore.InputData
{
public interface IVectoRunDataFactoryFactory
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JetBrains.Annotations;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCore.OutputData;
namespace TUGraz.VectoCore.InputData
{
public interface IVectoRunDataFactoryFactory
{
IVectoRunDataFactory CreateEngineeringRunDataFactory(IEngineeringInputDataProvider inputDataProvider);
/// <summary>
/// Creates a VectoRunDataFactory based on the type of inputDataProvider
/// </summary>
/// <param name="inputDataProvider"></param>
/// <param name="report"></param>
/// <returns></returns>
IVectoRunDataFactory CreateDeclarationRunDataFactory([NotNull] IInputDataProvider inputDataProvider,
IDeclarationReport report, IVTPReport vtpReport);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JetBrains.Annotations;
using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCore.InputData.Reader.Impl;
using TUGraz.VectoCore.Models.Simulation.Impl;
using TUGraz.VectoCore.OutputData;
using TUGraz.VectoCore.OutputData.XML;
namespace TUGraz.VectoCore.InputData.Reader
{
public class VectoRunDataFactoryFactory : IVectoRunDataFactoryFactory
{
/// <summary>
/// Creates a VectoRunDataFactory based on the type of inputDataProvider
/// </summary>
/// <param name="inputDataProvider"></param>
/// <param name="report"></param>
/// <returns></returns>
public IVectoRunDataFactory CreateDeclarationRunDataFactory([NotNull] IInputDataProvider inputDataProvider,
IDeclarationReport report, IVTPReport vtpReport)
{
if (inputDataProvider == null)
throw new ArgumentNullException(nameof(inputDataProvider));
switch (inputDataProvider)
{
case IVTPDeclarationInputDataProvider vtpProvider:
return CreateRunDataReader(vtpProvider, vtpReport);
case ISingleBusInputDataProvider singleBusProvider:
return CreateRunDataReader(singleBusProvider, report);
case IDeclarationInputDataProvider declDataProvider:
return CreateRunDataReader(declDataProvider, report);
case IMultistageVIFInputData multistageVifInputData:
return CreateRunDataReader(multistageVifInputData, report);
default:
break;
}
throw new VectoException("Unknown InputData for Declaration Mode!");
}
private IVectoRunDataFactory CreateRunDataReader(IMultistageVIFInputData multistageVifInputData, IDeclarationReport report)
{
if (multistageVifInputData.VehicleInputData == null) {
return new DeclarationModeCompletedMultistageBusVectoRunDataFactory(
multistageVifInputData.MultistageJobInputData,
report);
}
else {
CastReport<DeclarationModeMultistageBusVectoRunDataFactory>(report);
return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report);
}
}
private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, IDeclarationReport report)
{
var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory;
if (vehicleCategory.IsLorry()) {
return new DeclarationModeTruckVectoRunDataFactory(declDataProvider, report);
}
if (vehicleCategory.IsBus())
switch (declDataProvider.JobInputData.Vehicle.VehicleCategory)
{
case VehicleCategory.HeavyBusCompletedVehicle:
return new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, report);
case VehicleCategory.HeavyBusPrimaryVehicle:
return new DeclarationModePrimaryBusVectoRunDataFactory(declDataProvider, report);
default:
break;
}
throw new Exception(
$"Could not create RunDataFactory for Vehicle Category{vehicleCategory}");
}
private IVectoRunDataFactory CreateRunDataReader(IVTPDeclarationInputDataProvider vtpProvider, IDeclarationReport report)
{
var vtpReport = CastReport<IVTPReport>(report);
if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry())
{
return new DeclarationVTPModeVectoRunDataFactoryLorries(vtpProvider, vtpReport);
}
if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus())
{
return new DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider, vtpReport);
}
throw new Exception(
$"Could not create RunDataFactory for Vehicle Category{vtpProvider.JobInputData.Vehicle.VehicleCategory}");
}
private IVectoRunDataFactory CreateRunDataReader(ISingleBusInputDataProvider singleBusProvider, IDeclarationReport report)
{
return new DeclarationModeSingleBusVectoRunDataFactory(singleBusProvider, report);
}
public IVectoRunDataFactory CreateEngineeringRunDataFactory(IEngineeringInputDataProvider inputDataProvider)
{
throw new NotImplementedException();
}
private T CastReport<T>(object report)
{
if (report is T castedReport) {
return castedReport;
} else {
throw new VectoException("Error creating VectoRunDataFactory - wrong ReportType");
//return null;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Ninject.Modules;
namespace TUGraz.VectoCore.InputData.Reader
{
class VectoRunDataFactoryNinjectModule : NinjectModule
{
#region Overrides of NinjectModule
public override void Load()
{
Bind<IVectoRunDataFactoryFactory>().To<VectoRunDataFactoryFactory>().InSingletonScope();
}
#endregion
}
}
...@@ -44,7 +44,7 @@ using TUGraz.VectoHashing; ...@@ -44,7 +44,7 @@ using TUGraz.VectoHashing;
namespace TUGraz.VectoCore.Models.Simulation namespace TUGraz.VectoCore.Models.Simulation
{ {
public class SimulationFactoryNinjectModule : VectoNinjectModule public class SimulatorFactoryNinjectModule : VectoNinjectModule
{ {
#region Overrides of NinjectModule #region Overrides of NinjectModule
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
using Ninject.Modules; using Ninject.Modules;
using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML;
using TUGraz.VectoCore.InputData.Reader;
using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation;
using TUGraz.VectoCore.OutputData.XML; using TUGraz.VectoCore.OutputData.XML;
using TUGraz.VectoCore.OutputData.XML.ComponentWriter; using TUGraz.VectoCore.OutputData.XML.ComponentWriter;
...@@ -60,10 +61,12 @@ namespace TUGraz.VectoCore ...@@ -60,10 +61,12 @@ namespace TUGraz.VectoCore
LoadModule<XMLEngineeringWriterInjectModule>(); LoadModule<XMLEngineeringWriterInjectModule>();
LoadModule<SimulationFactoryNinjectModule>(); LoadModule<SimulatorFactoryNinjectModule>();
LoadModule<XMLDeclarationReportFactoryNinjectModule>(); LoadModule<XMLDeclarationReportFactoryNinjectModule>();
LoadModule<VectoRunDataFactoryNinjectModule>();
LoadModule<GroupWriterNinjectModule>(); LoadModule<GroupWriterNinjectModule>();
LoadModule<ComponentWriterNinjectModule>(); LoadModule<ComponentWriterNinjectModule>();
......
...@@ -282,9 +282,11 @@ ...@@ -282,9 +282,11 @@
<Compile Include="InputData\FileIO\XML\Declaration\IXMLDeclarationInputDataReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\IXMLDeclarationInputDataReader.cs" />
<Compile Include="InputData\FileIO\XML\IXMLInputDataReader.cs" /> <Compile Include="InputData\FileIO\XML\IXMLInputDataReader.cs" />
<Compile Include="InputData\FileIO\XML\XMLInputDataNinjectModule.cs" /> <Compile Include="InputData\FileIO\XML\XMLInputDataNinjectModule.cs" />
<Compile Include="InputData\IVectoRunDataFactoryFactory.cs" /> <Compile Include="InputData\Reader\IVectoRunDataFactoryFactory.cs" />
<Compile Include="InputData\Reader\ComponentData\BatteryInternalResistanceReader.cs" /> <Compile Include="InputData\Reader\ComponentData\BatteryInternalResistanceReader.cs" />
<Compile Include="InputData\Reader\ComponentData\BatteryMaxCurrentReader.cs" /> <Compile Include="InputData\Reader\ComponentData\BatteryMaxCurrentReader.cs" />
<Compile Include="InputData\Reader\VectoRunDataFactoryFactory.cs" />
<Compile Include="InputData\Reader\VectoRunDataFactoryNinjectModule.cs" />
<Compile Include="Models\SimulationComponent\Impl\BatterySystem.cs" /> <Compile Include="Models\SimulationComponent\Impl\BatterySystem.cs" />
<Compile Include="Models\SimulationComponent\Impl\PTODriveAuxiliary.cs" /> <Compile Include="Models\SimulationComponent\Impl\PTODriveAuxiliary.cs" />
<Compile Include="Models\SimulationComponent\Impl\RoadSweeperAuxiliary.cs" /> <Compile Include="Models\SimulationComponent\Impl\RoadSweeperAuxiliary.cs" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment