public NumberInterval GetNumberInterval() { if (Type != ChartParameterType.Number) { throw new InvalidOperationException("Type is not Number"); } if (numberInterval != null) { return(numberInterval); } lock (this) { if (numberInterval != null) { return(numberInterval); } string error = NumberInterval.TryParse(valueDefinition, out numberInterval); if (error.HasText()) { throw new FormatException(error); } } return(numberInterval); }
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)); }