mirror of
https://gitee.com/ant-design-blazor/ant-design-blazor.git
synced 2024-12-15 09:21:24 +08:00
ec45abc4d7
* feat(module: form): support set validation rules on FormItem(not complete yet) * refactor(module: form): optimized code * feat(module: form): support Whitespace rule * feat(module: form): support [message、pattern、transform、validator、whitespace] rules * feat(module: form): support type rule * feat(module: form): support [defaultField、oneOf、fields、type] rules * feat(module: form): support custome validate messages(without test) * test(module: form): complete RuleValidate_ValidateMessages test * feat(module: form): complete DynamicRule demo, refactor code, fix bugs * feat(module: form): support ValidateMessages param * doc(module: form): add "Rules" and "ValidateMessages" docs * fix: Rule.Max's errorMessage is wrong * refactor: rename Rule to FormValidationRule * test: rename Rule to FormValidationRule * chore: refactor code and rename classes * Update ValidateMode.razor * Update FormValidateErrorMessages.cs * Update FormValidateHelper.cs Co-authored-by: James Yeung <shunjiey@hotmail.com>
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;
|
|
}
|
|
}
|
|
}
|