From 77c2e135260088edaf316844a539dc724971bc7e Mon Sep 17 00:00:00 2001 From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at> Date: Mon, 4 May 2020 10:48:25 +0200 Subject: [PATCH] read TransferredCdxA and CdxA_0 values separately if completed xml exists --- VECTO3GUI/Helper/XmlComponentReaderHelper.cs | 10 +++++ VECTO3GUI/Helper/XmlHelper.cs | 8 ++++ .../ViewModel/Impl/AbstractJobViewModel.cs | 6 +-- VECTO3GUI/ViewModel/Impl/AirdragViewModel.cs | 40 +++++++++++++------ 4 files changed, 47 insertions(+), 17 deletions(-) diff --git a/VECTO3GUI/Helper/XmlComponentReaderHelper.cs b/VECTO3GUI/Helper/XmlComponentReaderHelper.cs index 5f61461418..ccc23cd42d 100644 --- a/VECTO3GUI/Helper/XmlComponentReaderHelper.cs +++ b/VECTO3GUI/Helper/XmlComponentReaderHelper.cs @@ -33,5 +33,15 @@ namespace VECTO3GUI.Helper DigestValue = new DigestData(GetNode(XMLNames.DI_Signature)) }; } + + public SquareMeter ReadTransferredCdxA() + { + return GetDouble("TransferredCdxA").SI<SquareMeter>(); + } + + public SquareMeter ReadCdxA_0() + { + return GetDouble("CdxA_0").SI<SquareMeter>(); + } } } diff --git a/VECTO3GUI/Helper/XmlHelper.cs b/VECTO3GUI/Helper/XmlHelper.cs index e719f90c0f..3b5cf49f43 100644 --- a/VECTO3GUI/Helper/XmlHelper.cs +++ b/VECTO3GUI/Helper/XmlHelper.cs @@ -53,5 +53,13 @@ namespace VECTO3GUI.Helper var validator = new XMLValidator(xmlDocument, null, XMLValidator.CallBackExceptionOnError); return validator.ValidateXML(documentType.Value); ; } + + public static string GetXmlAbsoluteFilePath(string baseUri) + { + if (baseUri == null) + return null; + + return new Uri(baseUri).AbsolutePath; + } } } diff --git a/VECTO3GUI/ViewModel/Impl/AbstractJobViewModel.cs b/VECTO3GUI/ViewModel/Impl/AbstractJobViewModel.cs index 7604435682..484e89205a 100644 --- a/VECTO3GUI/ViewModel/Impl/AbstractJobViewModel.cs +++ b/VECTO3GUI/ViewModel/Impl/AbstractJobViewModel.cs @@ -121,11 +121,7 @@ namespace VECTO3GUI.ViewModel.Impl protected void SetXmlFilePath(string baseUri) { - if (baseUri == null) - return; - - var uri = new Uri(baseUri); - XmlFilePath = uri.AbsolutePath; + XmlFilePath = XmlHelper.GetXmlAbsoluteFilePath(baseUri); } protected bool CloseWindowDialog() diff --git a/VECTO3GUI/ViewModel/Impl/AirdragViewModel.cs b/VECTO3GUI/ViewModel/Impl/AirdragViewModel.cs index d348a653f8..51bde59179 100644 --- a/VECTO3GUI/ViewModel/Impl/AirdragViewModel.cs +++ b/VECTO3GUI/ViewModel/Impl/AirdragViewModel.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Input; +using System.Xml; using Castle.Core.Internal; using Ninject; using TUGraz.VectoCommon.Hashing; @@ -65,7 +66,7 @@ namespace VECTO3GUI.ViewModel.Impl private bool _isEditable; private bool _useMeasurementData; private bool _noAirdragData; - + private string _xmlFilePath; private ICommand _airdragConfig; private ICommand _loadFileCommand; @@ -186,6 +187,9 @@ namespace VECTO3GUI.ViewModel.Impl { var inputData = JobViewModel.InputDataProvider as IDeclarationInputDataProvider; _airdragData = inputData?.JobInputData.Vehicle.Components.AirdragInputData; + var xmlUri = inputData?.JobInputData.Vehicle.XMLSource.BaseURI; + _xmlFilePath = XmlHelper.GetXmlAbsoluteFilePath(xmlUri); + SetAirdragValues(_airdragData); UseMeasurementData = _airdragData.AirDragArea != null; NoAirdragData = !UseMeasurementData; @@ -207,14 +211,22 @@ namespace VECTO3GUI.ViewModel.Impl Date = airdrag.Date; AppVersion = airdrag.AppVersion; DeclaredCdxA = airdrag.AirDragArea; - CdxA_0 = DeclaredCdxA; - TransferredCdxA = DeclaredCdxA; DigestValue = airdrag.DigestValue; + ReadAdditionalAirdragValues(); _componentData = new AirdragComponentData(this); ClearChangedProperties(); } + private void ReadAdditionalAirdragValues() + { + var xmlNodes = GetXmlNodes(_xmlFilePath); + var compReader = new XmlComponentReaderHelper(xmlNodes[0].ParentNode); + CdxA_0 = compReader.ReadCdxA_0(); + TransferredCdxA = compReader.ReadTransferredCdxA(); + } + + #region Commands public ICommand AirdragConfigCommand @@ -273,20 +285,24 @@ namespace VECTO3GUI.ViewModel.Impl private void ReadSelectedXml(string filePath) { - if (filePath.IsNullOrEmpty()) - return; - - var xmlDocument = XmlHelper.ReadXmlDocument(filePath); - var nodes = XmlHelper.GetComponentNodes(xmlDocument, - XMLNames.VectoInputDeclaration, VectoComponents.Airdrag.XMLElementName()); - - if(nodes.IsNullOrEmpty()) + var xmlNodes = GetXmlNodes(filePath); + if (xmlNodes.IsNullOrEmpty()) return; - var compReader = new XmlComponentReaderHelper(nodes[0].ParentNode); + var compReader = new XmlComponentReaderHelper(xmlNodes[0].ParentNode); SetLoadedAirdragData(compReader.GetAirdragComponentData()); } + private XmlNodeList GetXmlNodes(string filePath) + { + if (filePath.IsNullOrEmpty()) + return null; + + var xmlDocument = XmlHelper.ReadXmlDocument(filePath); + return XmlHelper.GetComponentNodes(xmlDocument, + XMLNames.VectoInputDeclaration, VectoComponents.Airdrag.XMLElementName()); + } + private void SetLoadedAirdragData(AirdragComponentData airdrag) { if (airdrag == null) -- GitLab