From 87bad9cef867ed02dec299fe57c1948c1dda6033 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Fri, 11 Nov 2016 13:19:41 +0100
Subject: [PATCH] more verbose error messages on validation (GUI)

---
 VECTO/Input Files/Engine.vb                    |  3 ++-
 VECTO/Input Files/Gearbox.vb                   |  6 ++++--
 VECTO/Input Files/Vehicle.vb                   | 12 ++++++++----
 VectoCore/VectoCore/Properties/AssemblyInfo.cs |  2 ++
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb
index 36428639bb..d0da6bf772 100644
--- a/VECTO/Input Files/Engine.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -248,7 +248,8 @@ Public Class Engine
 
 			If Not result.Any() Then Return ValidationResult.Success
 
-			Return New ValidationResult("Engine Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+			Return New ValidationResult("Engine Configuration is invalid. ",
+										result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 		Catch ex As Exception
 			Return New ValidationResult(ex.Message)
 		End Try
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index 189bae2878..a0f25c0f7c 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -225,13 +225,15 @@ Public Class Gearbox
 					gearboxData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering))
 			If result.Any() Then
 				Return _
-					New ValidationResult("Gearbox Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+					New ValidationResult("Gearbox Configuration is invalid. ",
+										result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 			End If
 
 			result = axlegearData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering))
 			If result.Any() Then
 				Return _
-					New ValidationResult("Axlegear Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+					New ValidationResult("Axlegear Configuration is invalid. ",
+										result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 			End If
 
 			Return ValidationResult.Success
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index b1d9e32a4f..b2b89fd921 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -120,20 +120,23 @@ Public Class Vehicle
 					vehicleData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering))
 			If result.Any() Then
 				Return _
-					New ValidationResult("Vehicle Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+					New ValidationResult("Vehicle Configuration is invalid. ",
+										result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 			End If
 
 			result = retarderData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering))
 			If result.Any() Then
 				Return _
-					New ValidationResult("Retarder Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+					New ValidationResult("Retarder Configuration is invalid. ",
+										result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 			End If
 
 			If vehicle.AngledriveType = AngledriveType.SeparateAngledrive Then
 				result = angledriveData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering))
 				If result.Any() Then
 					Return _
-						New ValidationResult("AngleDrive Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+						New ValidationResult("AngleDrive Configuration is invalid. ",
+											result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 				End If
 			End If
 
@@ -141,7 +144,8 @@ Public Class Vehicle
 				result = ptoData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering))
 				If result.Any() Then
 					Return _
-						New ValidationResult("PTO Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList())
+						New ValidationResult("PTO Configuration is invalid. ",
+											result.Select(Function(r) r.ErrorMessage + String.Join(Environment.NewLine, r.MemberNames)).ToList())
 				End If
 			End If
 
diff --git a/VectoCore/VectoCore/Properties/AssemblyInfo.cs b/VectoCore/VectoCore/Properties/AssemblyInfo.cs
index 0dae924fd1..51c8963955 100644
--- a/VectoCore/VectoCore/Properties/AssemblyInfo.cs
+++ b/VectoCore/VectoCore/Properties/AssemblyInfo.cs
@@ -44,6 +44,8 @@ using System.Runtime.InteropServices;
 [assembly: Guid("b843f4c2-660b-4a3e-a336-c1f9c20aa993")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoAPI")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoEngineeringAPI")]
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoXML")]
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("XMLTest")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VECTO")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoCoreTest")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoAPITest")]
\ No newline at end of file
-- 
GitLab