diff --git a/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs index 80b27c015fade735b2b7b9de3f1dceb4bcc2986b..0bde4ea28337d514cf0c346706fb5407c45cc083 100644 --- a/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs @@ -1,4 +1,5 @@ using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData; namespace TUGraz.VectoCore.InputData @@ -12,6 +13,7 @@ namespace TUGraz.VectoCore.InputData /// </summary> /// <param name="inputDataProvider"></param> /// <param name="report"></param> + /// <param name="vtpReport"></param> /// <returns></returns> IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, IVTPReport vtpReport); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs index cf86db666f90fcdb3c9c63c3353841b7df782d5b..35d56868f34196c5e786a8695f8cbeaeb82a297f 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs @@ -36,12 +36,13 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { protected virtual IVehicleDeclarationInputData Vehicle => InputDataProvider.JobInputData.Vehicle; - protected AbstractDeclarationVectoRunDataFactory( - IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IDeclarationCycleFactory cycleFactory, bool checkJobType = true) + protected AbstractDeclarationVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, + IDeclarationReport report, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter, + bool checkJobType = true) { CycleFactory = cycleFactory; InputDataProvider = dataProvider; - + MissionFilter = missionFilter; if (checkJobType) { if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle)) { @@ -54,6 +55,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { _allowVocational = true; } + protected IMissionFilter MissionFilter { get; } + protected DriverData DriverData => _driverdata ?? (_driverdata = CreateDriverData(_segment)); protected abstract DriverData CreateDriverData(Segment segment); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs index 7bee9296e78951c98ca9f94201648e4d91fceb59..2cee6e3e3537f1648c7454fe1341153411640ca6 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs @@ -40,7 +40,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public CompletedBusBase(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(null, report, cycleFactory, false) + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(null, report, cycleFactory, missionFilter,false) { DataAdapterSpecific = dataAdapterSpecific; DataAdapterGeneric = dataAdapterGeneric; @@ -204,8 +204,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { public Conventional(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, - dataAdapterGeneric, cycleFactory) + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, + dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() @@ -323,8 +323,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { protected Hybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -338,7 +338,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun } foreach (var mission in _segment.Missions) { - foreach (var loading in mission.Loadings) { + foreach (var loading in mission.Loadings.Where(l => MissionFilter?.Run(mission.MissionType, l.Key) ?? true)) { // TODO: charge sustaining / charge depleting if (ovc) { if (PrimaryVehicle.MaxChargingPower == null) { @@ -415,10 +415,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { - protected SerialHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, - ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + protected SerialHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of Hybrid @@ -574,10 +571,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class HEV_S2 : SerialHybrid { - public HEV_S2(IMultistageVIFInputData dataProvider, IDeclarationReport report, - ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of SerialHybrid @@ -606,17 +600,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class HEV_S3 : SerialHybrid { - public HEV_S3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of SerialHybrid @@ -645,10 +639,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun #region ParallelHybrid public abstract class ParallelHybrid : Hybrid { - protected ParallelHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, - ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + protected ParallelHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of Hybrid @@ -792,27 +783,27 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class HEV_P1 : ParallelHybrid { - public HEV_P1(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P1(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P2_5(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } #endregion ParallelHybrid @@ -824,8 +815,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { public BatteryElectric(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -966,7 +957,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class PEV_E2 : BatteryElectric { - public PEV_E2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -990,15 +981,15 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun } public class PEV_E3 : BatteryElectric { - public PEV_E3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { - public PEV_E4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { - public PEV_E_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of BatteryElectric @@ -1057,7 +1048,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class Exempted : CompletedBusBase { - public Exempted(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public Exempted(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index 2c3f43e687af73064636cf6cb89e02aadbbc9d52..9831d1284ebefbfd1a463974e1e0cfc289537536 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public IDeclarationReport Report { get; } protected LorryBase(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, cycleFactory, false) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, cycleFactory, missionFilter, false) { DataAdapter = declarationDataAdapter; InputDataProvider = dataProvider; @@ -206,7 +206,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class Conventional : LorryBase { public Conventional(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of LorryBase protected override IEnumerable<VectoRunData> GetNextRun() @@ -333,8 +333,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa #endregion public BatteryElectric(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -446,8 +446,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class PEV_E2 : BatteryElectric { public PEV_E2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -484,20 +484,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class PEV_E3 : BatteryElectric { public PEV_E3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { public PEV_E4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter:missionFilter) { } @@ -559,7 +562,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class Exempted : LorryBase { public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of AbstractDeclarationVectoRunDataFactory diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs index b3f9bd5c2878f2213492298b53ddffe7a219989b..969b3304dbabe9295df578e570623d04d81d5503 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs @@ -23,8 +23,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public abstract class Hybrid : LorryBase { public Hybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -87,8 +87,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa #endregion public SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -190,9 +190,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class ParallelHybrid : Hybrid { - public ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) { } + public ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, @@ -303,8 +301,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class HEV_S2 : SerialHybrid { public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { @@ -333,21 +331,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class HEV_S3 : SerialHybrid { - public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } @@ -423,40 +417,33 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class HEV_P1 : ParallelHybrid { - public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } - } + public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } + } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P_IHPC : HEV_P2 { - public HEV_P_IHPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + public HEV_P_IHPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs index 6a686c4d025849d40fd2b44ad1bc1676ec3e509e..69400b7fa699842ea055ccc9dac49440fddba73d 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs @@ -30,7 +30,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa //public IDeclarationReport Report { get; } protected PrimaryBusBase(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, cycleFactory, false) + IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, cycleFactory, missionFilter, false) { DataAdapter = declarationDataAdapter; DataProvider = dataProvider; @@ -123,7 +124,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class Conventional : PrimaryBusBase { public Conventional(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase @@ -212,7 +214,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public abstract class Hybrid : PrimaryBusBase { - protected Hybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + protected Hybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -242,9 +244,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public abstract class SerialHybrid : Hybrid { - protected SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + protected SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } @@ -344,8 +344,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class HEV_S2 : SerialHybrid { - public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -372,20 +371,19 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class HEV_S3 : SerialHybrid { - public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -444,7 +442,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public abstract class ParallelHybrid : Hybrid { - protected ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + protected ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -546,38 +544,38 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class HEV_P1 : ParallelHybrid { - public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public abstract class BatteryElectric : PrimaryBusBase { - public BatteryElectric(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public BatteryElectric(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase @@ -660,7 +658,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class PEV_E2 : BatteryElectric { - public PEV_E2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase @@ -690,19 +688,19 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class PEV_E3 : BatteryElectric { - public PEV_E3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { - public PEV_E4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { - public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override bool AxleGearRequired() @@ -753,7 +751,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class Exempted : PrimaryBusBase { - public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs index 7969ce62c527ae9b0c23c7ede1ddcdf81de05939..449cd7435896c92a85023054c30fe3ba86276272 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs @@ -38,7 +38,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus protected override IVehicleDeclarationInputData Vehicle => throw new NotImplementedException(); protected SingleBusBase(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, - ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, cycleFactory) + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, cycleFactory, missionFilter) { DataAdapter = dataAdapter; Report = report; @@ -128,7 +129,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class Conventional : SingleBusBase { public Conventional(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, - ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } @@ -222,7 +224,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public abstract class Hybrid : SingleBusBase { - protected Hybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected Hybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -258,7 +262,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public abstract class SerialHybrid : Hybrid { - protected SerialHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected SerialHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -353,7 +359,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus } public class HEV_S2 : SerialHybrid { - public HEV_S2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -382,18 +390,24 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class HEV_S3 : SerialHybrid { - public HEV_S3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -452,7 +466,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public abstract class ParallelHybrid : Hybrid { - protected ParallelHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected ParallelHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -561,32 +577,44 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class HEV_P1 : ParallelHybrid { - public HEV_P1(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P1(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P2_5(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public abstract class BatteryElectric : SingleBusBase { - protected BatteryElectric(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected BatteryElectric(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -664,7 +692,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class PEV_E2 : BatteryElectric { - public PEV_E2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -692,17 +722,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class PEV_E3 : BatteryElectric { - public PEV_E3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { - public PEV_E4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { - public PEV_E_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override bool AxleGearRequired() { @@ -753,7 +789,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class Exempted : SingleBusBase { - public Exempted(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public Exempted(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } #region Overrides of SingleBusBase diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs index 1b43c18fce2bef235d13d89a24f2d1d7704ffabc..928e8753beeea07e8000511b3ce53ffce8d956dd 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs @@ -7,6 +7,7 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; @@ -39,11 +40,14 @@ namespace TUGraz.VectoCore.InputData.Reader { _internalFactory = internalFactory; } + /// <summary> /// Creates a VectoRunDataFactory based on the type of inputDataProvider /// </summary> /// <param name="inputDataProvider"></param> /// <param name="report"></param> + /// <param name="vtpReport"></param> + /// <param name="missionFilter"></param> /// <returns></returns> public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, IVTPReport vtpReport) diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs index aec5f2a8c3194769391823fd61d17e694b3582b8..52c09942151becf23ae990057b5466f6b8de54d8 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs @@ -24,7 +24,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories public MockupMultistageCompletedBusRunDataFactory(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } @@ -163,7 +163,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories { var InputDataProvider = DataProvider.MultistageJobInputData; foreach (var mission in _segment.Missions) { - foreach (var loading in mission.Loadings) { + foreach (var loading in mission.Loadings.Where(l => MissionFilter?.Run(mission.MissionType, l.Key) ?? true)) { var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx); if (simulationRunData != null) { yield return simulationRunData; diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs index 827633da865bbc7114e085716bdda9d5bc3d9027..99d1a438a9481fe96fcb996a8de0d5df0d93cadf 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs @@ -22,7 +22,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories { public MockupLorryVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs index ba7fdb81da79963ea506e5c5f0cf1bfb521920cd..1d45ebe0377e836b392afde2f0d7626120bc5b54 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs @@ -23,9 +23,10 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories public class PrimaryBusMockupRunDataFactory : DeclarationModePrimaryBusRunDataFactory.Conventional { public PrimaryBusMockupRunDataFactory(IDeclarationInputDataProvider dataProvider, - IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : - base(dataProvider, report, declarationDataAdapter, cycleFactory) + IDeclarationReport report, + IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : + base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of AbstractDeclarationVectoRunDataFactory diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs index eb84061a17bfee843430bf301cb8762129292038..b31d36464034497218755f96ba0c22369d52a7b2 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs @@ -12,6 +12,7 @@ using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Specific; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus; using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData; @@ -23,8 +24,9 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories - public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, - IVTPReport vtpReport) + public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, + IDeclarationReport report, + IVTPReport vtpReport) { if (inputDataProvider == null) throw new ArgumentNullException(nameof(inputDataProvider)); @@ -53,20 +55,21 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories multistageVifInputData, report, new DeclarationDataAdapterSpecificCompletedBus.Conventional(), new DeclarationDeclarationDataAdapterGenericCompletedBusDeclaration.Conventional(), - null); + null, null); } else { return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report); } } - private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, IDeclarationReport report) + private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, + IDeclarationReport report) { var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory; if (vehicleCategory.IsLorry()) { return new MockupLorryVectoRunDataFactory(declDataProvider, report, new DeclarationDataAdapterHeavyLorry.Conventional(), - null); + null, null); } if (vehicleCategory.IsBus()) @@ -78,7 +81,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories //return new DeclarationModeMultistageBusVectoRunDataFactory(declDataProvider, report); case VehicleCategory.HeavyBusPrimaryVehicle: return new PrimaryBusMockupRunDataFactory(declDataProvider, report, new DeclarationDataAdapterPrimaryBus.Conventional(), - null); + null, null); default: break; } diff --git a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs index e9eb9f0d1f6fe2d641674958e0dcfcee2f86c316..b1c732de6d4d13162c5163129368f37c94a80260 100644 --- a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs @@ -57,7 +57,11 @@ namespace TUGraz.VectoCore.Models.Simulation // ToDo: MQ 2023-05-09: REMOVE CLASS IN PRODUCTION!!! Bind<IDeclarationCycleFactory>().To<DeclarationCycleFromFilesystemFactory>().InSingletonScope(); + Bind<IMissionFilter>().To<DefaultMissionFilter>(); + //Bind<IDeclarationCycleFactory>().To<DeclarationCycleFactory>().InSingletonScope(); + //Bind<IMissionFilter>().ToMethod((context => null)); + Bind<IDeclarationReport>().To<NullDeclarationReport>(); Bind<IVTPReport>().To<NullVTPReport>(); diff --git a/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs b/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs index a31cefeade4321ebeafa08c5d1190d306723c09b..14b44daa737516d4ed3c5fe00ebf36ae4f678999 100644 --- a/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs @@ -73,7 +73,7 @@ namespace TUGraz.VectoCore.Tests.FileIO } var dataAdapter = new DeclarationDataAdapterHeavyLorry.Conventional(); - var reader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(declarationProvider, null, dataAdapter, _kernel.Get<IDeclarationCycleFactory>()); + var reader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(declarationProvider, null, dataAdapter, _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); //reader.SetJobFile(DeclarationJob); var runData = reader.NextRun().First(); diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs index 47b10a23c3b87f2b9d3cfcc2a66e6df258ec1e48..97ec8f5b7fb204cbc90a051ebe785a97f3f4a972 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs @@ -113,7 +113,9 @@ public class PrimaryBusSimulation _kernel.Rebind<IDeclarationCycleFactory>().To<TestDeclarationCycleFactoryStartPoint>().InSingletonScope(); var cycleFactory = _kernel.Get<IDeclarationCycleFactory>() as TestDeclarationCycleFactoryStartPoint; - + _kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope(); + var missionFilter = _kernel.Get<IMissionFilter>() as TestMissionFilter; + missionFilter!.SetMissions((MissionType.Interurban, LoadingType.ReferenceLoad)); cycleFactory!.SetStartPoint(MissionType.Interurban, start.SI<Meter>(), true, distance?.SI<Meter>()); var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), Path.Combine(BASE_DIR_COMPLETED, completed)); diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 62a83c790b346e441bb04cba638029f3efe8df31..0704e32b4d939f8cccc7bfaa7b95346fab9aa3b0 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -2132,7 +2132,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\12t Delivery Truck.vecto") as IDeclarationInputDataProvider; - var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>()); + var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); var runs = dataReader.NextRun().ToList(); Assert.AreEqual(6, runs.Count); @@ -2156,7 +2156,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration var dataProvider = JSONInputDataFactory.ReadJsonJob( @"TestData\Jobs\Class4_40t_Long_Haul_Truck.vecto") as IDeclarationInputDataProvider; - var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>()); + var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); var runs = dataReader.NextRun().ToList(); Assert.AreEqual(8, runs.Count); @@ -2180,7 +2180,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\40t_Long_Haul_Truck.vecto") as IDeclarationInputDataProvider; - var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>()); + var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); var runs = dataReader.NextRun().ToList(); diff --git a/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs b/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs index 2dc4e2c3e6f4dc91043ae52f8f1636dbd700f548..2de806682e114516473e74f81c966bbb7b7bc569 100644 --- a/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs +++ b/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using NUnit.Framework; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; @@ -12,6 +13,31 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; namespace TUGraz.VectoCore.Tests.Utils { + public class TestMissionFilter : IMissionFilter + { + private HashSet<(MissionType m, LoadingType l)> _missionsToRun = new HashSet<(MissionType m, LoadingType l)>(); + + #region Implementation of IMissionFilter + + public bool Run(MissionType missionType, LoadingType loadingType) + { + var run = _missionsToRun.Contains((missionType, loadingType)); + if(!run){ + TestContext.Progress.WriteLine($"[{nameof(TestMissionFilter)}] skipping {missionType} - {loadingType}"); + } + return run; + } + + internal void SetMissions(params (MissionType m, LoadingType loadingType)[] missionLoadingPairs) + { + foreach (var missionLoadingPair in missionLoadingPairs) { + _missionsToRun.Add((missionLoadingPair.m, missionLoadingPair.loadingType)); + } + } + + #endregion + } + public class TestDeclarationCycleFactoryVariant : IDeclarationCycleFactory {