public RankRequirement(QualificationResponse qualification, IRankRequirementDefinition definition)
        {
            //var actualValue = qualification.Actual;
            //if(actualValue.CanBeParsedAs<Decimal>())
            //{
            //    actualValue = actualValue.ToString(CultureInfo.CurrentCulture);
            //}

            QualificationResponse = qualification;
            RequiredValue = qualification.Required;
            ActualValue = qualification.Actual;
            IsOverridden = (qualification.QualifiesOverride != null) ? Convert.ToBoolean(qualification.QualifiesOverride) : false;
            QualifiedValue = qualification.Qualifies;

            Label = definition.Label;
            RequirementDescription = definition.RequirementDescription;
            QualifiedDescription = definition.QualifiedDescription;
            NotQualifiedDescription = definition.NotQualifiedDescription;
            IsBoolean = definition.Type == RankQualificationType.Boolean;
            Expression = definition.Expression;
        }
        private static RankRequirement GetRequirement(QualificationResponse[] qualifications, IRankRequirementDefinition definition)
        {
            Regex regex = new Regex(definition.Expression);
            QualificationResponse qualification = null;

            qualification = (from q in qualifications
                             let description = q.QualificationDescription.ToUpper()
                             let matches = regex.Matches(description)
                             where matches.Count > 0
                             select q).FirstOrDefault();

            if (qualification != null)
            {
                return new RankRequirement(qualification, definition);
            }
            else
            {
                return null;
            }
        }