changeset 361:8781e53c59bb

Re #345: Add failure message to requirements * Return message for each failure (don't stop at first one)
author IBBoard <dev@ibboard.co.uk>
date Sun, 01 May 2011 14:45:56 +0000
parents 777725613edb
children c19e61262400
files API/Objects/Requirement/RequirementHandler.cs
diffstat 1 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/API/Objects/Requirement/RequirementHandler.cs	Sun May 01 14:33:27 2011 +0000
+++ b/API/Objects/Requirement/RequirementHandler.cs	Sun May 01 14:45:56 2011 +0000
@@ -2,6 +2,7 @@
 // 
 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
 using System;
+using System.Collections.Generic;
 
 namespace IBBoard.WarFoundry.API.Objects.Requirement
 {
@@ -15,15 +16,22 @@
 		}
 
 		public static Validation ValidateArmy (Army army)
+		{
+			ICollection<string> ignored;
+			return ValidateArmy(army, out ignored);
+		}
+
+		public static Validation ValidateArmy (Army army, out ICollection<string> failureMessages)
 		{
-			Validation result = Validation.Passed;
+			Validation result = Validation.Passed;
+			failureMessages = new List<string>();
 
 			foreach (IRequirement requirement in army.GetRequirements())
 			{
 				if (!Validates.AsOkay(requirement.ValidatesArmy(army)))
 				{
-					result = Validation.Failed;
-					break;
+					result = Validation.Failed;
+					failureMessages.Add(requirement.GetValidationMessage(army));
 				}
 			}