bool ValidateValue(Common.SimpleDatatypeEnumeration datatype, string externalValue) { bool isValid = false; var comparator = new Modulo.Collect.OVAL.Common.comparators.OvalComparatorFactory().GetComparator(datatype); if ((variable.Items == null) || (variable.Items.Count() == 0)) { isValid = true; } else { foreach (var possibleValue in variable.Items.OfType <PossibleValueType>().Cast <PossibleValueType>()) { isValid = comparator.Compare(possibleValue.Value, externalValue, Common.OperationEnumeration.equals); if (isValid) { break; } } if (!isValid) { // loop through all the possible_restriction elements searching for a restriction foreach (var possibleRestriction in variable.Items.OfType <PossibleRestrictionType>().Cast <PossibleRestrictionType>()) { foreach (var restriction in possibleRestriction.Items) { isValid = comparator.Compare(restriction.Value, externalValue, restriction.operation); if (isValid) { break; } } if (isValid) { break; } } } } return(isValid); }
private IEnumerable <string> ApplyRestriction(RestrictionType restriction, string value, Common.SimpleDatatypeEnumeration datatypeEnumeration, string restrictionHint) { List <string> messages = new List <string>(); IOvalComparator comparator = new OvalComparatorFactory().GetComparator(datatypeEnumeration); if (!comparator.Compare(value, restriction.Value, restriction.operation)) { StringBuilder sb = new StringBuilder(); sb.AppendLine(restrictionHint); sb.AppendLine(restriction.GetRestrictionMessage()); messages.Add(sb.ToString()); } return(messages); }