diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs index 1153d2f2a7f8752f60ec38a2df2acef6a06bcfe1..ae4fa9940d3b4d85fc9c30c304ed02ee30693684 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/ManufacturingStageViewModel_v0_1.cs @@ -22,7 +22,7 @@ using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { - public class ManufacturingStageViewModel_v0_1 : ViewModelBase, IManufacturingStageViewModel + public class ManufacturingStageViewModel_v0_1 : ViewModelBase, IManufacturingStageViewModel { public static readonly string INPUTPROVIDERTYPE = typeof(XMLDeclarationMultistageTypeInputDataV01).ToString(); public static readonly string QualifiedXSD = XMLDeclarationMultistageTypeInputDataV01.QUALIFIED_XSD_TYPE; @@ -80,7 +80,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public ManufacturingStageViewModel_v0_1(IManufacturingStageInputData consolidatedManufacturingStageInputData, IMultiStageViewModelFactory viewModelFactory) { _viewModelFactory = viewModelFactory; - _stageCount = consolidatedManufacturingStageInputData?.StageCount?? + 1; + + _stageCount = consolidatedManufacturingStageInputData?.StageCount + 1 ?? 2; + _consolidatedManufacturingStageInputData = consolidatedManufacturingStageInputData; diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index 750fd2ed2d71511a79c3ff8c68e359e72c94d38b..06594be48c34a512ee335cedaf508b7c8dcc0138 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -74,12 +74,18 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation } } - public static void SaveVif(IMultistageVIFInputData vifData, string outputFile) + public static void SaveVif(IMultistageVIFInputData vifData, FileOutputVIFWriter writer) { - var numberOfManufacturingStages = - vifData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? 1; + SaveVif(vifData, null, writer); + } + + public static void SaveVif(IMultistageVIFInputData vifData, string outputFile, FileOutputVIFWriter writer = null) + { + if (writer == null) { + var numberOfManufacturingStages = vifData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? 0; + writer = new FileOutputVIFWriter(outputFile, numberOfManufacturingStages); + } - var writer = new FileOutputVIFWriter(outputFile, numberOfManufacturingStages); var inputData = new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData); var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); @@ -94,23 +100,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation jobContainer.Execute(); jobContainer.WaitFinished(); - var progress = jobContainer.GetProgress(); - var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName)); - - - var valid = validator.ValidateXML(XmlDocumentType.MultistageOutputData); if (!valid) { Debug.WriteLine("Invalid Outputfile"); } Debug.WriteLine($"Written to {writer.XMLMultistageReportFileName}"); - - - - } private ICommand _saveInputDataCommand; diff --git a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs index e7b5bd992be644363900f88a794b8eaf9a893180..2b987deb5ec1f5b608c4bae1ddd8b6cd9e8768c4 100644 --- a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs @@ -21,7 +21,7 @@ namespace Vecto3GUI2020Test.ViewModelTests var multistagevm = loadFile(primary_vehicle_only).MultiStageJobViewModel; var stage = multistagevm.ManufacturingStageViewModel.StageCount; - Assert.AreEqual(1, stage); + Assert.AreEqual(2, stage); //Set Necessary Fields var vehicle = @@ -29,24 +29,18 @@ namespace Vecto3GUI2020Test.ViewModelTests vehicle.ManufacturerAddress = "Address"; vehicle.Manufacturer = "Manufacturer"; vehicle.VIN = "VIN12345678"; + + var writer = GetFileOutputVIFWriter(multistagevm); + + deleteFile(writer.XMLMultistageReportFileName); + getMockDialogHelper(null, writer.XMLMultistageReportFileName); + _kernel.Rebind<IDialogHelper>().ToConstant(getMockDialogHelper(null, writer.XMLMultistageReportFileName).Object); + MultiStageJobViewModel_v0_1.SaveVif(multistagevm, writer); - var outputFileName = primary_vehicle_only.Replace(".xml", "_vif_output_mandatory_fields.xml"); - var outputFilePath = Path.Combine(DirPath, outputFileName); - - var nextStageNumber = multistagevm.ManufacturingStageViewModel?.StageCount + 2 ?? 2; - var expectedOutputFilePath = outputFilePath.Replace(".xml", $".{FileOutputVIFWriter.REPORT_ENDING_PREFIX}{nextStageNumber}.xml"); - deleteFile(expectedOutputFilePath); - - - getMockDialogHelper(null, outputFilePath); - _kernel.Rebind<IDialogHelper>().ToConstant(getMockDialogHelper(null, outputFilePath).Object); - - MultiStageJobViewModel_v0_1.SaveVif(multistagevm, outputFilePath); - - Assert.IsTrue(File.Exists(expectedOutputFilePath)); + Assert.IsTrue(File.Exists(writer.XMLMultistageReportFileName)); - var validator = new XMLValidator(XmlReader.Create(expectedOutputFilePath)); + var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName)); Assert.True(validator.ValidateXML(TUGraz.VectoCore.Utils.XmlDocumentType.MultistageOutputData)); } @@ -83,7 +77,6 @@ namespace Vecto3GUI2020Test.ViewModelTests _kernel.Rebind<IDialogHelper>().ToConstant(vehicleInputDataFiledialogMock.Object); multiStageViewModel.LoadVehicleDataCommand.Execute(null); - var vehicle = multiStageViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; @@ -93,21 +86,26 @@ namespace Vecto3GUI2020Test.ViewModelTests vehicle.AirdragModifiedMultistage = true; vehicle.VehicleDeclarationType = VehicleDeclarationType.interim; - var outputFileName = primary_vehicle_only.Replace(".xml", "_vif_output_mandatory_fields.xml"); - var outputFilePath = Path.Combine(DirPath, outputFileName); - - var nextStageNumber = multiStageViewModel.ManufacturingStages?.Count + 2 ?? 2; - var expectedOutputFilePath = outputFilePath.Replace(".xml", $".{FileOutputVIFWriter.REPORT_ENDING_PREFIX}{nextStageNumber}.xml"); - deleteFile(expectedOutputFilePath); + var writer = GetFileOutputVIFWriter(multiStageViewModel); - getMockDialogHelper(null, outputFilePath); - _kernel.Rebind<IDialogHelper>().ToConstant(getMockDialogHelper(null, outputFilePath).Object); + deleteFile(writer.XMLMultistageReportFileName); + getMockDialogHelper(null, writer.XMLMultistageReportFileName); + _kernel.Rebind<IDialogHelper>().ToConstant(getMockDialogHelper(null, writer.XMLMultistageReportFileName).Object); - MultiStageJobViewModel_v0_1.SaveVif(multiStageViewModel, outputFilePath); + MultiStageJobViewModel_v0_1.SaveVif(multiStageViewModel, writer); - var validator = new XMLValidator(XmlReader.Create(expectedOutputFilePath)); + var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName)); Assert.True(validator.ValidateXML(TUGraz.VectoCore.Utils.XmlDocumentType.MultistageOutputData)); + } + + + private FileOutputVIFWriter GetFileOutputVIFWriter(IMultiStageJobViewModel multistageViewModel) + { + var outputFileName = primary_vehicle_only.Replace(".xml", "_vif_output_mandatory_fields.xml"); + var outputFilePath = Path.Combine(DirPath, outputFileName); + var currentStageCount = multistageViewModel.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? 0; + return new FileOutputVIFWriter(outputFilePath, currentStageCount); } }