/// <summary> /// Adds a ValidationMapping to the ValidationMap that establishes a validation criteria that needs to be met for the /// specified indicator /// </summary> /// <param name="indicatorName">The indicator to add a validation rule for</param> /// <param name="mapping">ValidationMapping that builds the ValidationRule</param> public void AddToMap(string indicatorName, ValidationMapping mapping) { if (ValidationMap != null) { if (!ValidationMap.ContainsKey(indicatorName)) { ValidationMap.Add(indicatorName, new List<ValidationMapping>()); } // Add the new mapping ValidationMap[indicatorName].Add(mapping); } }
/// <summary> /// Builds an instance of a ValidationRule /// </summary> /// <param name="mapping">The ValidationMapping</param> /// <param name="indicator">The indicator to validate gainst</param> /// <param name="values">The values to validate against</param> /// <returns></returns> public static ValidationRule BuildRule(ValidationMapping mapping, Indicator indicator, List<IndicatorValue> values) { switch (mapping.ValidationType) { case ValidationRuleType.GreaterThanSum: return new GreaterThanSumRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.GreaterThanEqualToSum: return new GreaterThanEqualToSumRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.LessThanSum: return new LessThanSumRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.LessThanEqualToSum: return new LessThanEqualToSumRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.EqualToSum: return new EqualToSumRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.DateEarlierThan: return new DateEarlierThanRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.DateLaterThan: return new DateLaterThanRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); case ValidationRuleType.DateHasSameYear: return new DateHasSameYearRule(indicator, values, mapping.IndicatorsToCompareAgainst.ToList()); default: return null; } }