diff --git a/VECTO3GUI2020/Ninject/FactoryModule.cs b/VECTO3GUI2020/Ninject/FactoryModule.cs index 7e127993df48a043e1437ae08ca09501a7f84bf9..95cc3ca74c62697b3851d0d881775bd4e1120316 100644 --- a/VECTO3GUI2020/Ninject/FactoryModule.cs +++ b/VECTO3GUI2020/Ninject/FactoryModule.cs @@ -19,7 +19,8 @@ namespace VECTO3GUI2020.Ninject public override void Load() { Bind<IXMLWriterFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider()); - Bind<IMultiStageViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: true, fallback: true)); + //Bind<IMultiStageViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: true, fallback: true)); + Bind<IMultiStageViewModelFactory>().ToFactory(); Bind<IJobEditViewModelFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider()); Bind<IDocumentViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(false)); Bind<IComponentViewModelFactory>().ToFactory( diff --git a/VECTO3GUI2020/Ninject/MultistageModule.cs b/VECTO3GUI2020/Ninject/MultistageModule.cs index 9a3de4889e5aac7a009fee69d8fd8c3f126fa8ce..8e5606060adbe463dd91d85f958ff74948fc26f6 100644 --- a/VECTO3GUI2020/Ninject/MultistageModule.cs +++ b/VECTO3GUI2020/Ninject/MultistageModule.cs @@ -3,8 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Automation.Peers; using Ninject.Extensions.Factory; using Ninject.Modules; +using TUGraz.VectoCore.Models.SimulationComponent; using VECTO3GUI2020.Ninject.Util; using VECTO3GUI2020.ViewModel.Interfaces.Common; using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; @@ -18,19 +20,20 @@ namespace VECTO3GUI2020.Ninject public override void Load() { - Bind<IViewModelBase>().To<NewMultiStageJobViewModel>(); + Bind<IViewModelBase>().To<NewMultiStageJobViewModel>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetNewMultistageJobViewModel()); + Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null)); - Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>() - .Named(MultiStageJobViewModel_v0_1.INPUTPROVIDERTYPE); + Bind<IVehicleViewModel>().To<DeclarationInterimStageBusVehicleViewModel_v2_8>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel()); - Bind<IVehicleViewModel>().To<DeclarationInterimStageBusVehicleViewModel_v2_8>() - .Named(DeclarationInterimStageBusVehicleViewModel_v2_8.INPUTPROVIDERTYPE); + Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetManufacturingStageViewModel(null)); - Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>() - .Named(ManufacturingStageViewModel_v0_1.INPUTPROVIDERTYPE); - - Bind<IMultistageAirdragViewModel>().To<MultistageAirdragViewModel>(); + Bind<IMultistageAirdragViewModel>().To<MultistageAirdragViewModel>(). + NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultistageAirdragViewModel()); } } } diff --git a/VECTO3GUI2020/VECTO3GUI2020.csproj b/VECTO3GUI2020/VECTO3GUI2020.csproj index 1f446f5be99ccb67d3953a08789dc9a8ccd6bc17..66156b07a9c9d7851759950779d910ad358099e4 100644 --- a/VECTO3GUI2020/VECTO3GUI2020.csproj +++ b/VECTO3GUI2020/VECTO3GUI2020.csproj @@ -242,11 +242,12 @@ <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\ITorqueConverterViewModel.cs" /> <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\ITyreViewModel.cs" /> <Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\IVehicleViewModel.cs" /> - <Compile Include="ViewModel\MultiStage\Implementation\DeclarationInterimStageBusVehicleViewModel_v2_8.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\InterimStageBusVehicleViewModel_v2_8.cs" /> <Compile Include="ViewModel\MultiStage\Implementation\InterimStageBusAuxiliariesViewModel_v2_8.cs" /> <Compile Include="ViewModel\MultiStage\Implementation\InterimStageViewModel.cs" /> <Compile Include="ViewModel\MultiStage\Implementation\ManufacturingStageViewModel_v0_1.cs" /> <Compile Include="ViewModel\MultiStage\Implementation\MultistageAirdragViewModel.cs" /> + <Compile Include="ViewModel\MultiStage\Implementation\MultistageAuxiliariesViewModel.cs" /> <Compile Include="ViewModel\MultiStage\Implementation\NewMultiStageJobViewModel.cs" /> <Compile Include="ViewModel\MultiStage\Implementation\MultistageJobViewModel_v0_1.cs" /> <Compile Include="ViewModel\MultiStage\Interfaces\IMultistageAirdragViewModel.cs" /> diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs index c71ea3f14bb2a4bd5418357de2a9c9187636ca1e..6e6b830b0fc1f34771b536e77449dc2a5867f112 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/DeclarationJobEditViewModel.cs @@ -104,6 +104,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit private ICommand _saveAsCommand; private DataSource _dataSource; private IDialogHelper _dialogHelper; + private VectoSimulationJobType _jobType; private void UpdateDataSource(string filename) @@ -166,6 +167,8 @@ namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit public string JobName => Name; public string ShiftStrategy => throw new NotImplementedException(); + + public VectoSimulationJobType JobType => _jobType; } public class DeclarationJobEditViewModel_v1_0 : DeclarationJobEditViewModel diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs index c957de3f19c6615fdea7feea11a70f92ce67fb24..10ae064b75e5320656d7f0822aa8a88b8200d9ca 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs @@ -101,7 +101,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation private void NewManufacturingStageFileExecute() { - _windowHelper.ShowWindow(_multiStageViewModelFactory.CreateNewMultiStageJobViewModel()); + _windowHelper.ShowWindow(_multiStageViewModelFactory.GetNewMultistageJobViewModel()); } diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/DeclarationInterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs similarity index 95% rename from VECTO3GUI2020/ViewModel/MultiStage/Implementation/DeclarationInterimStageBusVehicleViewModel_v2_8.cs rename to VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs index 5b76925e0e12aad2ad17fe1f295e026f592f5bb0..44da7d3ebc4ee3f2481be8b032fd924526f996f7 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/DeclarationInterimStageBusVehicleViewModel_v2_8.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs @@ -219,7 +219,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation private Dictionary<string, object> _accumulatedProperties = new Dictionary<string, object>(); private IVehicleViewModel _prevStageVehicleViewModel; - private IVehicleDeclarationInputData _prevStageInputData; + private IVehicleDeclarationInputData _consolidatedVehicleData; private VehicleDeclarationType _vehicleDeclarationType; public ObservableCollection<IComponentViewModel> ComponentViewModels @@ -240,15 +240,15 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation } - public DeclarationInterimStageBusVehicleViewModel_v2_8(IVehicleDeclarationInputData prevStageInputData, IMultiStageViewModelFactory vmFactory) + public DeclarationInterimStageBusVehicleViewModel_v2_8(IVehicleDeclarationInputData consolidatedVehicleData, IMultiStageViewModelFactory vmFactory) { - PrevStageInputData = prevStageInputData; + ConsolidatedVehicleData = consolidatedVehicleData; } - public IVehicleDeclarationInputData PrevStageInputData + public IVehicleDeclarationInputData ConsolidatedVehicleData { - get { return _prevStageInputData; } - set { SetProperty(ref _prevStageInputData, value); } + get { return _consolidatedVehicleData; } + set { SetProperty(ref _consolidatedVehicleData, value); } } diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs index 1bc6d2d42bc1d7205a2e04794b87ae1cc14f8bd9..f1016a611468b6a14fef97d824ec16c151169377 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs @@ -70,25 +70,23 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public DigestData Signature => throw new NotImplementedException(); - public ManufacturingStageViewModel_v0_1(IManufacturingStageInputData prevStageInputData, IMultiStageViewModelFactory viewModelFactory) + public ManufacturingStageViewModel_v0_1(IManufacturingStageInputData consolidatedManufacturingStageInputData, IMultiStageViewModelFactory viewModelFactory) { _viewModelFactory = viewModelFactory; - StageCount = prevStageInputData.StageCount + 1; - HashPreviousStage = prevStageInputData.Signature; + _stageCount = consolidatedManufacturingStageInputData.StageCount + 1; + _consolidatedManufacturingStageInputData = consolidatedManufacturingStageInputData; - - VehicleViewModel = - _viewModelFactory.CreateInterimStageVehicleViewModel(prevStageInputData.Vehicle.GetType().ToString(), prevStageInputData.Vehicle); + VehicleViewModel = _viewModelFactory.GetInterimStageVehicleViewModel(consolidatedManufacturingStageInputData.Vehicle); CurrentView = VehicleViewModel as IViewModelBase; Components.Add(VehicleViewModel.Name, VehicleViewModel as IViewModelBase); - var airDragEditViewModel = viewModelFactory.CreateMultistageAirdragViewModel(); + var airDragEditViewModel = viewModelFactory.GetMultistageAirdragViewModel(); Components.Add("Airdrag", airDragEditViewModel as IViewModelBase); } @@ -96,6 +94,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation private ICommand _switchComponentViewCommand; private int _stageCount; private DigestData _hashPreviousStage; + private IManufacturingStageInputData _consolidatedManufacturingStageInputData; public ICommand SwitchComponentViewCommand { diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs index 34e78a737068f954bf85d8ef7974b432b52eaee9..9c08631df27a21fac51e60cb569998974934a9e3 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs @@ -38,6 +38,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation #region Commands private ICommand _loadAirdragFileCommand; + private IAirdragDeclarationInputData _consolidatedAirdragInputData; public ICommand LoadAirdragFileCommand { @@ -72,5 +73,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation _inputDataReader = inputDataReader; _componentViewModelFactory = componentViewModelFactory; } + + public MultistageAirdragViewModel(IAirdragDeclarationInputData consolidatedAirdragInputData, + IDialogHelper dialogHelper, + IXMLInputDataReader inputDataReader, + IComponentViewModelFactory componentViewModelFactory) : this(dialogHelper, inputDataReader, componentViewModelFactory) + { + _consolidatedAirdragInputData = consolidatedAirdragInputData; + + } } } \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..af9ae61c4fcaa366fc64b769e5442a11f78eb8f4 --- /dev/null +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs @@ -0,0 +1,289 @@ +using System; +using System.Collections.Generic; +using System.Xml; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces; +using VECTO3GUI2020.ViewModel.Implementation.Common; + +namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation +{ + + public class MultistageAuxiliariesViewModel : ViewModelBase, IBusAuxiliariesDeclarationData, + IElectricSupplyDeclarationData, + IPneumaticSupplyDeclarationData, + IElectricConsumersDeclarationData, + IPneumaticConsumersDeclarationData, + IHVACBusAuxiliariesDeclarationData //implements all used interfaces similar to + { + #region Implementation of interfaces; + private XmlNode _xmlSource; + private string _fanTechnology; + private IList<string> _steeringPumpTechnology; + private IElectricSupplyDeclarationData _electricSupply; + private IElectricConsumersDeclarationData _electricConsumers; + private IPneumaticSupplyDeclarationData _pneumaticSupply; + private IPneumaticConsumersDeclarationData _pneumaticConsumers; + private IHVACBusAuxiliariesDeclarationData _hvacAux; + private IList<IAlternatorDeclarationInputData> _alternators; + private bool _smartElectrics; + private Watt _maxAlternatorPower; + private WattSecond _electricStorageCapacity; + private string _clutch; + private double _ratio; + private string _compressorSize; + private bool _smartAirCompression; + private bool _smartRegeneration; + private bool? _interiorLightsLed; + private bool? _dayrunninglightsLed; + private bool? _positionlightsLed; + private bool? _headlightsLed; + private bool? _brakelightsLed; + private ConsumerTechnology _airsuspensionControl; + private ConsumerTechnology _adBlueDosing; + private BusHVACSystemConfiguration? _systemConfiguration; + private HeatPumpType? _heatPumpTypeDriverCompartment; + private HeatPumpMode? _heatPumpModeDriverCompartment; + private HeatPumpType? _heatPumpTypePassengerCompartment; + private HeatPumpMode? _heatPumpModePassengerCompartment; + private Watt _auxHeaterPower; + private bool? _doubleGlazing; + private bool? _adjustableAuxiliaryHeater; + private bool? _separateAirDistributionDucts; + private bool? _waterElectricHeater; + private bool? _airElectricHeater; + private bool? _otherHeatingTechnology; + private bool? _adjustableCoolantThermostat; + private bool _engineWasteGasHeatExchanger; + + public XmlNode XMLSource + { + get => _xmlSource; + set => _xmlSource = value; + } + + public string FanTechnology + { + get => _fanTechnology; + set => _fanTechnology = value; + } + + public IList<string> SteeringPumpTechnology + { + get => _steeringPumpTechnology; + set => _steeringPumpTechnology = value; + } + + public IElectricSupplyDeclarationData ElectricSupply + { + get => this; + set => throw new NotImplementedException(); + } + + public IElectricConsumersDeclarationData ElectricConsumers + { + get => this; + set => throw new NotImplementedException(); + } + + public IPneumaticSupplyDeclarationData PneumaticSupply + { + get => this; + set => throw new NotImplementedException(); + } + + public IPneumaticConsumersDeclarationData PneumaticConsumers + { + get => this; + set => throw new NotImplementedException(); + } + + public IHVACBusAuxiliariesDeclarationData HVACAux + { + get => this; + set => throw new NotImplementedException(); + } + + public IList<IAlternatorDeclarationInputData> Alternators + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + public bool SmartElectrics + { + get => _smartElectrics; + set => _smartElectrics = value; + } + + public Watt MaxAlternatorPower + { + get => _maxAlternatorPower; + set => _maxAlternatorPower = value; + } + + public WattSecond ElectricStorageCapacity + { + get => _electricStorageCapacity; + set => _electricStorageCapacity = value; + } + + public string Clutch + { + get => _clutch; + set => _clutch = value; + } + + public double Ratio + { + get => _ratio; + set => _ratio = value; + } + + public string CompressorSize + { + get => _compressorSize; + set => _compressorSize = value; + } + + public bool SmartAirCompression + { + get => _smartAirCompression; + set => _smartAirCompression = value; + } + + public bool SmartRegeneration + { + get => _smartRegeneration; + set => _smartRegeneration = value; + } + + public bool? InteriorLightsLED + { + get => _interiorLightsLed; + set => _interiorLightsLed = value; + } + + public bool? DayrunninglightsLED + { + get => _dayrunninglightsLed; + set => _dayrunninglightsLed = value; + } + + public bool? PositionlightsLED + { + get => _positionlightsLed; + set => _positionlightsLed = value; + } + + public bool? HeadlightsLED + { + get => _headlightsLed; + set => _headlightsLed = value; + } + + public bool? BrakelightsLED + { + get => _brakelightsLed; + set => _brakelightsLed = value; + } + + public ConsumerTechnology AirsuspensionControl + { + get => _airsuspensionControl; + set => _airsuspensionControl = value; + } + + public ConsumerTechnology AdBlueDosing + { + get => _adBlueDosing; + set => _adBlueDosing = value; + } + + public BusHVACSystemConfiguration? SystemConfiguration + { + get => _systemConfiguration; + set => _systemConfiguration = value; + } + + public HeatPumpType? HeatPumpTypeDriverCompartment + { + get => _heatPumpTypeDriverCompartment; + set => _heatPumpTypeDriverCompartment = value; + } + + public HeatPumpMode? HeatPumpModeDriverCompartment + { + get => _heatPumpModeDriverCompartment; + set => _heatPumpModeDriverCompartment = value; + } + + public HeatPumpType? HeatPumpTypePassengerCompartment + { + get => _heatPumpTypePassengerCompartment; + set => _heatPumpTypePassengerCompartment = value; + } + + public HeatPumpMode? HeatPumpModePassengerCompartment + { + get => _heatPumpModePassengerCompartment; + set => _heatPumpModePassengerCompartment = value; + } + + public Watt AuxHeaterPower + { + get => _auxHeaterPower; + set => _auxHeaterPower = value; + } + + public bool? DoubleGlazing + { + get => _doubleGlazing; + set => _doubleGlazing = value; + } + + public bool? AdjustableAuxiliaryHeater + { + get => _adjustableAuxiliaryHeater; + set => _adjustableAuxiliaryHeater = value; + } + + public bool? SeparateAirDistributionDucts + { + get => _separateAirDistributionDucts; + set => _separateAirDistributionDucts = value; + } + + public bool? WaterElectricHeater + { + get => _waterElectricHeater; + set => _waterElectricHeater = value; + } + + public bool? AirElectricHeater + { + get => _airElectricHeater; + set => _airElectricHeater = value; + } + + public bool? OtherHeatingTechnology + { + get => _otherHeatingTechnology; + set => _otherHeatingTechnology = value; + } + + public bool? AdjustableCoolantThermostat + { + get => _adjustableCoolantThermostat; + set => _adjustableCoolantThermostat = value; + } + + public bool EngineWasteGasHeatExchanger + { + get => _engineWasteGasHeatExchanger; + set => _engineWasteGasHeatExchanger = value; + } + #endregion + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index abc2dfc76a938a9e2c1a9be5db0d2bef7a3f21d1..dc7d93e127a9b86a097ce684f90e85fd126b1b43 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -34,20 +34,19 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation } private IMultiStageViewModelFactory _vmFactory; + private IManufacturingStageInputData _consolidateManufacturingStage; + private VectoSimulationJobType _jobType; + private bool _inputComplete; public MultiStageJobViewModel_v0_1(IMultistageBusInputDataProvider inputData, IMultiStageViewModelFactory vmFactory) { _jobInputData = inputData.JobInputData; _vmFactory = vmFactory; - - - - var prevStageInputData = _jobInputData.ManufacturingStages.Last(); + _consolidateManufacturingStage = inputData.JobInputData.ConsolidateManufacturingStage; _manufacturingStageViewModel = - vmFactory.CreateManufacturingStageViewModel(prevStageInputData.GetType().ToString(), - prevStageInputData); + vmFactory.GetManufacturingStageViewModel(_consolidateManufacturingStage); _jobInputData.ManufacturingStages.Add(_manufacturingStageViewModel as IManufacturingStageInputData); @@ -58,6 +57,12 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle => throw new NotImplementedException(); public IList<IManufacturingStageInputData> ManufacturingStages => throw new NotImplementedException(); + + public IManufacturingStageInputData ConsolidateManufacturingStage => _consolidateManufacturingStage; + + public VectoSimulationJobType JobType => _jobType; + + public bool InputComplete => _inputComplete; } public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs index 860a7c77dcc61d23cdb406b4546dcd3215845ba6..a56f7ceec0ff17350395a2f6e3bce2df6aa95129 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs @@ -78,7 +78,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation } MultiStageJobViewModel = - _vmFactory.CreateMultiStageJobViewModel(inputDataProvider.GetType().ToString(), inputDataProvider); + _vmFactory.GetMultiStageJobViewModel(inputDataProvider); VifPath = fileName; } diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs index 189839bbb571b7d9ce1b8a34a65c64d20483146b..10e6c1e4fb09194cf56e45b2ea9c7ef225a1eadc 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs @@ -14,16 +14,30 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces { public interface IMultiStageViewModelFactory { - IViewModelBase CreateNewMultiStageJobViewModel(); + IViewModelBase GetNewMultistageJobViewModel(); - IMultiStageJobViewModel CreateMultiStageJobViewModel(string inputProviderType, IMultistageBusInputDataProvider inputData); + IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData); - IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType); + IVehicleViewModel GetInterimStageVehicleViewModel(); - IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType, IVehicleDeclarationInputData prevStageInputData); + IVehicleViewModel GetInterimStageVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData); - IManufacturingStageViewModel CreateManufacturingStageViewModel(string inputProviderType, IManufacturingStageInputData prevStageInputData); + IManufacturingStageViewModel GetManufacturingStageViewModel(IManufacturingStageInputData consolidatedManufacturingStageInputData); + IMultistageAirdragViewModel GetMultistageAirdragViewModel(); - IMultistageAirdragViewModel CreateMultistageAirdragViewModel(); + IMultistageAirdragViewModel getMultistageAirdragViewModel( + IAirdragDeclarationInputData consolidatedAirdragInputData); + + //IViewModelBase CreateNewMultiStageJobViewModel(); + + //IMultiStageJobViewModel CreateMultiStageJobViewModel(string inputProviderType, IMultistageBusInputDataProvider inputData); + + //IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType); + + //IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType, IVehicleDeclarationInputData prevStageInputData); + + //IManufacturingStageViewModel CreateManufacturingStageViewModel(string inputProviderType, IManufacturingStageInputData consolidatedManufacturingStageInputData); + + //IMultistageAirdragViewModel CreateMultistageAirdragViewModel(); } } diff --git a/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml index 42823fb59c1a3dca9a85e03ff71e37c00b4c5c20..fe3d7f32ccf392f881960b721cfc904e6abc5d7b 100644 --- a/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml +++ b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml @@ -15,52 +15,52 @@ <custom:MultiStageParameter Optional="False" Content="{Binding VIN}"/> <custom:MultiStageParameter - PreviousContent="{Binding PrevStageInputData.Model}" + PreviousContent="{Binding ConsolidatedVehicleData.Model}" Content="{Binding Model}"/> <Separator/> <custom:MultiStageParameter EditingEnabled="{Binding MeasurementsGroupEditingEnabled}" - PreviousContent="{Binding PrevStageInputData.Height}" + PreviousContent="{Binding ConsolidatedVehicleData.Height}" Content="{Binding Height}"/> <custom:MultiStageParameter EditingEnabled="{Binding MeasurementsGroupEditingEnabled}" - PreviousContent="{Binding PrevStageInputData.Width}" + PreviousContent="{Binding ConsolidatedVehicleData.Width}" Content="{Binding Width}" HideCheckBox="True"/> <custom:MultiStageParameter EditingEnabled="{Binding MeasurementsGroupEditingEnabled}" - PreviousContent="{Binding PrevStageInputData.Length}" + PreviousContent="{Binding ConsolidatedVehicleData.Length}" Content="{Binding Length}" HideCheckBox="True"/> <Separator/> <custom:MultiStageParameter EditingEnabled="{Binding NumberOfPassengersEditingEnabled}" - PreviousContent="{Binding PrevStageInputData.NumberOfPassengersUpperDeck}" + PreviousContent="{Binding ConsolidatedVehicleData.NumberOfPassengersUpperDeck}" Content="{Binding NumberOfPassengersUpperDeck}"/> <custom:MultiStageParameter EditingEnabled="{Binding NumberOfPassengersEditingEnabled}" - PreviousContent="{Binding PrevStageInputData.NumberOfPassengersLowerDeck}" + PreviousContent="{Binding ConsolidatedVehicleData.NumberOfPassengersLowerDeck}" Content="{Binding NumberOfPassengersLowerDeck}" HideCheckBox="True"/> <Separator/> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.GrossVehicleMassRating}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.GrossVehicleMassRating}" Content="{Binding GrossVehicleMassRating}"/> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.DoorDriveTechnology}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.DoorDriveTechnology}" Content="{Binding DoorDriveTechnology}" ComboBoxMode="True" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.LegislativeClass}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.LegislativeClass}" Content="{Binding LegislativeClass}" ComboBoxMode="True" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.RegisteredClass}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.RegisteredClass}" Content="{Binding RegisteredClass}" ComboBoxMode="True" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.VehicleCode}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.VehicleCode}" Content="{Binding VehicleCode}" ComboBoxMode="True" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.LowEntry}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.LowEntry}" Content="{Binding LowEntry}" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.EntranceHeight}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.EntranceHeight}" Content="{Binding EntranceHeight}" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.TankSystem}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.TankSystem}" Content="{Binding TankSystem}" ComboBoxMode="True" /> - <custom:MultiStageParameter PreviousContent="{Binding PrevStageInputData.VehicleDeclarationType}" + <custom:MultiStageParameter PreviousContent="{Binding ConsolidatedVehicleData.VehicleDeclarationType}" Content="{Binding VehicleDeclarationType}" ComboBoxMode="True" /> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml index 1524bff892e127deebfa635fc197c031d8eec082..b0fb946c8409db5d130252609afcb02bbc192499 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_only_mandatory_standard_value_airdrag.xml @@ -1 +1,33 @@ -<?xml version="1.0" encoding="UTF-8"?> <tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:\VECTO_DEV\fk_vecto-dev\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType" > <Manufacturer>Some Manufacturer 3</Manufacturer> <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> <VIN>VEH-1234567890</VIN> <Date>2020-01-09T11:00:00Z</Date> <DeclarationType>final</DeclarationType> <Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> <v2.8:AirDrag> <v2.0:Data xsi:type="v2.8:AirDragModifiedUseStandardValueType" id="std"/> <v2.0:Signature> <di:Reference URI="#std"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> </di:Reference> </v2.0:Signature> </v2.8:AirDrag> <Auxiliaries> <Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"></Data> </Auxiliaries> </Components> </v2.0:Vehicle> </tns:VectoInputDeclaration> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:di="http://www.w3.org/2000/09/xmldsig#" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType" > + <Manufacturer>Some Manufacturer 3</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address 3</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2020-01-09T11:00:00Z</Date> + <DeclarationType>final</DeclarationType> + <Components xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:type="v2.8:CompletedVehicleComponentsDeclarationType"> + <v2.8:AirDrag> + <v2.0:Data xsi:type="v2.8:AirDragModifiedUseStandardValueType" id="std"/> + <v2.0:Signature> + <di:Reference URI="#std"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </v2.8:AirDrag> + <Auxiliaries> + <Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"></Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFile.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFile.xml new file mode 100644 index 0000000000000000000000000000000000000000..3baab2fa609ec00fcb3b5095be0d7a63a5211f9d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFile.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/VectoComponent.xsd"> + <tns:AirDrag> + <Data id="TestAirDrag1234" xsi:type="AirDragDataDeclarationType"> + <Manufacturer>Test AirDrag Manufacturer</Manufacturer> + <Model>Test AirDrag Model</Model> + <CertificationNumber>e12*0815/8051*2020/05E0000*66</CertificationNumber> + <Date>2020-04-28T09:16:15.1270795Z</Date> + <AppVersion>Vecto AirDrag Test Load</AppVersion> + <CdxA_0>6.12</CdxA_0> + <TransferredCdxA>7.12</TransferredCdxA> + <DeclaredCdxA>8.12</DeclaredCdxA> + </Data> + <Signature> + <di:Reference URI="#TestAirDrag1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>Yd3UDJ/zKPhsmPadJeC4Ez/q7o3G82Zbq3mX3tSqLDw=</di:DigestValue> + </di:Reference> + </Signature> + </tns:AirDrag> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_component_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_component_airdrag.xml new file mode 100644 index 0000000000000000000000000000000000000000..31d6841d34b8ba024064e773ea5cf86aeb8a5f7c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_component_airdrag.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.0" +xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xmlns:di="http://www.w3.org/2000/09/xmldsig#" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <AirDrag> + <v2.0:Data xsi:type="v2.0:AirDragDataDeclarationType" id="CabinX24h"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E1000*00</v2.0:CertificationNumber> + <v2.0:Date>2018-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y.z</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.36</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX24h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/28N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> +</tns:VectoInputDeclaration> \ No newline at end of file