From 2880d6733fd304a52d5223f70366ecbde14fe8fb Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Thu, 14 Jan 2016 16:12:54 +0100
Subject: [PATCH] added documentation for validation classes.

---
 VectoCore/Utils/Validation.cs | 66 ++++++++++++++++++++++++++++++++++-
 1 file changed, 65 insertions(+), 1 deletion(-)

diff --git a/VectoCore/Utils/Validation.cs b/VectoCore/Utils/Validation.cs
index 5dcb78b854..f5edf56e79 100644
--- a/VectoCore/Utils/Validation.cs
+++ b/VectoCore/Utils/Validation.cs
@@ -7,8 +7,17 @@ using System.Reflection;
 
 namespace TUGraz.VectoCore.Utils
 {
+	/// <summary>
+	/// Helper Class for doing the Validation
+	/// </summary>
 	public static class ValidationHelper
 	{
+		/// <summary>
+		/// Validates the specified entity and all its properties recursively. (Extension Method)
+		/// </summary>
+		/// <typeparam name="T"></typeparam>
+		/// <param name="entity">The entity.</param>
+		/// <returns>Null, if the validation was successfull. Otherwise a list of ValidationResults with the ErrorMessages.</returns>
 		public static IList<ValidationResult> Validate<T>(this T entity)
 		{
 			var context = new ValidationContext(entity);
@@ -46,15 +55,31 @@ namespace TUGraz.VectoCore.Utils
 			return results;
 		}
 
+		/// <summary>
+		/// Determines whether this instance is valid. (Extension Method)
+		/// </summary>
+		/// <typeparam name="T"></typeparam>
+		/// <param name="entity">The entity.</param>
+		/// <returns></returns>
 		public static bool IsValid<T>(this T entity)
 		{
 			return Validator.TryValidateObject(entity, new ValidationContext(entity), null, true);
 		}
 	}
 
-
+	/// <summary>
+	/// Determines that the attributed object should be validated recursively.
+	/// </summary>
 	public class ValidateObjectAttribute : ValidationAttribute
 	{
+		/// <summary>
+		/// Validates an object recursively (all elements if its a list, or all fields and properties if its an object).
+		/// </summary>
+		/// <param name="value">The value to validate.</param>
+		/// <param name="validationContext">The context information about the validation operation.</param>
+		/// <returns>
+		/// ValidationResult.Success if the validation was successfull. Otherwise the joined ErrorMessages are returned.
+		/// </returns>
 		protected override ValidationResult IsValid(object value, ValidationContext validationContext)
 		{
 			if (value == null) {
@@ -87,20 +112,59 @@ namespace TUGraz.VectoCore.Utils
 		}
 	}
 
+	/// <summary>
+	/// Attribute which validates the Min-Max Range of an SI Object.
+	/// </summary>
 	public class SIRangeAttribute : RangeAttribute
 	{
+		/// <summary>
+		/// Checks the Min-Max Range of SI Objects.
+		/// </summary>
+		/// <param name="minimum">The minimum.</param>
+		/// <param name="maximum">The maximum.</param>
 		public SIRangeAttribute(int minimum, int maximum) : base(minimum, maximum) {}
+
+		/// <summary>
+		/// Checks the Min-Max Range of SI Objects.
+		/// </summary>
+		/// <param name="minimum">The minimum.</param>
+		/// <param name="maximum">The maximum.</param>
 		public SIRangeAttribute(double minimum, double maximum) : base(minimum, maximum) {}
+
+		/// <summary>
+		/// Checks the Min-Max Range of SI Objects.
+		/// </summary>
+		/// <param name="minimum">The minimum.</param>
+		/// <param name="maximum">The maximum.</param>
 		public SIRangeAttribute(SI minimum, SI maximum) : base(minimum.Value(), maximum.Value()) {}
 
+		/// <summary>
+		/// Validates that an SI Object is inside the min-max range.
+		/// </summary>
+		/// <param name="value">The value to validate.</param>
+		/// <param name="validationContext">The context information about the validation operation.</param>
+		/// <returns>
+		/// ValidationResult.Success if the validation was successfull, otherwise an Instance of ValidationResult with the ErrorMessage.
+		/// </returns>
 		protected override ValidationResult IsValid(object value, ValidationContext validationContext)
 		{
 			return base.IsValid(((SI)value).Value(), validationContext);
 		}
 	}
 
+	/// <summary>
+	/// Attribute which validates a Path.
+	/// </summary>
 	public class PathAttribute : ValidationAttribute
 	{
+		/// <summary>
+		/// Validates that a path actually exists.
+		/// </summary>
+		/// <param name="value">The value to validate.</param>
+		/// <param name="validationContext">The context information about the validation operation.</param>
+		/// <returns>
+		/// ValidationResult.Success if the validation was successfull, otherwise an Instance of ValidationResult with the ErrorMessage.
+		/// </returns>
 		protected override ValidationResult IsValid(object value, ValidationContext validationContext)
 		{
 			if (!File.Exists((string)value)) {
-- 
GitLab