2024-09-22 11:05:41 +08:00
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
2025-07-11 09:20:23 +08:00
|
|
|
|
using System.Globalization;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
|
2026-02-20 16:47:26 +08:00
|
|
|
|
namespace ShrlAlgoToolkit.RevitAddins.Attributes;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
|
|
|
|
|
|
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
|
|
|
|
|
|
public sealed class IsNumericAttribute : ValidationAttribute
|
|
|
|
|
|
{
|
|
|
|
|
|
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
|
|
|
|
|
|
{
|
|
|
|
|
|
return double.TryParse(value.ToString(), out var _) ? ValidationResult.Success : new("输入内容不是数值。");
|
|
|
|
|
|
}
|
2025-07-11 09:20:23 +08:00
|
|
|
|
public override bool IsValid(object value)
|
|
|
|
|
|
{
|
|
|
|
|
|
return double.TryParse(value.ToString(), out var _);
|
|
|
|
|
|
}
|
|
|
|
|
|
public override string FormatErrorMessage(string name)
|
|
|
|
|
|
{
|
|
|
|
|
|
return string.Format(CultureInfo.CurrentCulture, base.ErrorMessageString, [name]);
|
|
|
|
|
|
}
|
2024-09-22 11:05:41 +08:00
|
|
|
|
}
|