From 90063317e06aaec8df47015ca2b68f7c06887dcd Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 14 Sep 2016 14:36:04 +0200
Subject: [PATCH] store si-unit string on validation and use for error message

---
 VectoCommon/VectoCommon/Utils/Validation.cs | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/VectoCommon/VectoCommon/Utils/Validation.cs b/VectoCommon/VectoCommon/Utils/Validation.cs
index 860cb37503..1d58d04429 100644
--- a/VectoCommon/VectoCommon/Utils/Validation.cs
+++ b/VectoCommon/VectoCommon/Utils/Validation.cs
@@ -198,6 +198,7 @@ namespace TUGraz.VectoCommon.Utils
 	public class SIRangeAttribute : RangeAttribute
 	{
 		private ExecutionMode? _mode;
+		private string _unit = "-";
 
 		/// <summary>
 		/// Checks the Min-Max Range of SI Objects.
@@ -267,6 +268,10 @@ namespace TUGraz.VectoCommon.Utils
 		{
 			var si = value as SI;
 
+			if (si != null) {
+				_unit = si.GetUnitString();
+			}
+
 			var modeService = validationContext.GetService(typeof(ExecutionMode)) as ExecutionModeServiceContainer;
 			var mode = modeService == null ? (ExecutionMode?)null : modeService.Mode;
 			if (mode == null) {
@@ -277,6 +282,13 @@ namespace TUGraz.VectoCommon.Utils
 			}
 			return ValidationResult.Success;
 		}
+
+		public override string FormatErrorMessage(string name)
+		{
+			const string unitString = "{0} [{1}]";
+			return string.Format(ErrorMessageString, name, string.Format(unitString, Minimum, _unit),
+				string.Format(unitString, Maximum, _unit));
+		}
 	}
 
 	/// <summary>
-- 
GitLab