public EnumValueList GetEnumValues() { if (Type != ChartParameterType.Enum) { throw new InvalidOperationException("Type is not Enum"); } if (enumValues != null) { return(enumValues); } lock (this) { if (enumValues != null) { return(enumValues); } string error = EnumValueList.TryParse(valueDefinition, out enumValues); if (error.HasText()) { throw new FormatException(error); } } return(enumValues); }
protected override string PropertyValidation(PropertyInfo pi) { if (pi.Name == nameof(ValueDefinition) && ValueDefinition != null) { switch (Type) { case ChartParameterType.Enum: return(EnumValueList.TryParse(valueDefinition, out enumValues)); case ChartParameterType.Number: return(NumberInterval.TryParse(valueDefinition, out numberInterval)); case ChartParameterType.String: return(null); default: throw new InvalidOperationException(); } } return(base.PropertyValidation(pi)); }