private void ValidateConditions()
{
// Apply highlighting of badges
TreeNode BadgeNode = AwardTree.Nodes[0];
for (int i = 0; i < BadgeNode.Nodes.Count; i++)
{
int j = 0;
foreach (TreeNode N in BadgeNode.Nodes[i].Nodes)
{
// Fetch the award and its condition
Condition Cond = AwardCache.GetAward(N.Name).GetCondition();
if (Cond is ConditionList)
{
ConditionList Clist = Cond as ConditionList;
if (Clist.HasConditionErrors)
{
// Top level node
BadgeNode.ForeColor = Color.Red;
// Badge Node
BadgeNode.Nodes[i].ForeColor = Color.Red;
// Badege Level Node
BadgeNode.Nodes[i].Nodes[j].ForeColor = Color.Red;
}
}
// Make sure that this condition returns a bool
else if (Cond.Returns() != ReturnType.Bool)
{
// Top level node
BadgeNode.ForeColor = Color.Red;
// Badge Node
BadgeNode.Nodes[i].ForeColor = Color.Red;
// Badege Level Node
BadgeNode.Nodes[i].Nodes[j].ForeColor = Color.Red;
}
j++;
}
}
// Apply highlighting for the rest of the awards
for (int i = 1; i < 4; i++)
{
int j = 0;
foreach (TreeNode N in AwardTree.Nodes[i].Nodes)
{
// Fetch the award and its condition
Condition Cond = AwardCache.GetAward(N.Name).GetCondition();
if (Cond is ConditionList)
{
ConditionList Clist = Cond as ConditionList;
if (Clist.HasConditionErrors)
{
// Top level Node
AwardTree.Nodes[i].ForeColor = Color.Red;
// Award Node
AwardTree.Nodes[i].Nodes[j].ForeColor = Color.Red;
}
}
// Make sure that this condition returns a bool
else if (Cond.Returns() != ReturnType.Bool)
{
// Top level Node
AwardTree.Nodes[i].ForeColor = Color.Red;
// Award Node
AwardTree.Nodes[i].Nodes[j].ForeColor = Color.Red;
}
j++;
}
}
}