Mercurial > repos > IBBoard.WarFoundry.API
changeset 363:506af4cbe3f5
Fixes #33: Add centralised requirement checker
* Implement validation with messages for adding
(Other features added under #27 and not separately marked)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 01 May 2011 19:16:23 +0000 |
parents | c19e61262400 |
children | 0dd8dbe8afe9 |
files | API/Objects/Requirement/RequirementHandler.cs |
diffstat | 1 files changed, 26 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/API/Objects/Requirement/RequirementHandler.cs Sun May 01 15:39:05 2011 +0000 +++ b/API/Objects/Requirement/RequirementHandler.cs Sun May 01 19:16:23 2011 +0000 @@ -14,40 +14,48 @@ private RequirementHandler() { } - - public static Validation ValidateArmy (Army army) + + + public static Validation ValidateArmy(Army army) { ICollection<string> ignored; return ValidateArmy(army, out ignored); } - public static Validation ValidateArmy (Army army, out ICollection<string> failureMessages) - { + public static Validation ValidateArmy(Army army, out ICollection<string> failureMessages) + { Validation result = Validation.Passed; - failureMessages = new List<string>(); - - foreach (IRequirement requirement in army.GetRequirements()) - { - if (!Validates.AsOkay(requirement.ValidatesArmy(army))) - { + failureMessages = new List<string>(); + + foreach (IRequirement requirement in army.GetRequirements()) + { + if (!Validates.AsOkay(requirement.ValidatesArmy(army))) + { result = Validation.Failed; - failureMessages.Add(requirement.GetValidationMessage(army)); - } - } - - return result; - } + failureMessages.Add(requirement.GetValidationMessage(army)); + } + } + + return result; + } public static Validation AllowsAdding(UnitType unitType, Army army) { + ICollection<string> ignored; + return AllowsAdding(unitType, army, out ignored); + } + + public static Validation AllowsAdding(UnitType unitType, Army army, out ICollection<string> failureMessages) + { Validation result = Validation.Passed; - + failureMessages = new List<string>(); + foreach (IRequirement requirement in army.GetRequirements()) { if (!Validates.AsOkay(requirement.AllowsAdding(unitType, army))) { result = Validation.Failed; - break; + failureMessages.Add(requirement.GetAllowsAddingMessage(unitType, army)); } }