mirror of
https://gitee.com/ant-design-blazor/ant-design-blazor.git
synced 2024-12-15 09:21:24 +08:00
49 lines
1.7 KiB
C#
49 lines
1.7 KiB
C#
|
using System;
|
|||
|
using System.ComponentModel.DataAnnotations;
|
|||
|
using System.Globalization;
|
|||
|
|
|||
|
namespace AntDesign.Internal.Form.Validate
|
|||
|
{
|
|||
|
internal class NumberMinAttribute : ValidationAttribute
|
|||
|
{
|
|||
|
internal decimal Min { get; }
|
|||
|
|
|||
|
internal NumberMinAttribute(decimal min)
|
|||
|
{
|
|||
|
Min = min;
|
|||
|
}
|
|||
|
|
|||
|
public override string FormatErrorMessage(string name)
|
|||
|
{
|
|||
|
return string.Format(CultureInfo.CurrentCulture, ErrorMessageString, name, Min);
|
|||
|
}
|
|||
|
|
|||
|
public override bool IsValid(object value)
|
|||
|
{
|
|||
|
var type = value.GetType();
|
|||
|
var typeMaxValue = GetMaxValueString(type);
|
|||
|
|
|||
|
var attribute = new RangeAttribute(type, Min.ToString(), typeMaxValue);
|
|||
|
|
|||
|
return attribute.IsValid(value);
|
|||
|
}
|
|||
|
|
|||
|
private static string GetMaxValueString(Type type)
|
|||
|
{
|
|||
|
if (type == typeof(byte)) return byte.MaxValue.ToString();
|
|||
|
if (type == typeof(short)) return short.MaxValue.ToString();
|
|||
|
if (type == typeof(int)) return int.MaxValue.ToString();
|
|||
|
if (type == typeof(long)) return long.MaxValue.ToString();
|
|||
|
if (type == typeof(float)) return float.MaxValue.ToString();
|
|||
|
if (type == typeof(double)) return double.MaxValue.ToString();
|
|||
|
if (type == typeof(sbyte)) return sbyte.MaxValue.ToString();
|
|||
|
if (type == typeof(ushort)) return ushort.MaxValue.ToString();
|
|||
|
if (type == typeof(uint)) return uint.MaxValue.ToString();
|
|||
|
if (type == typeof(ulong)) return ulong.MaxValue.ToString();
|
|||
|
if (type == typeof(decimal)) return decimal.MaxValue.ToString();
|
|||
|
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|