ant-design-blazor/components/form/Internal/Validate/ValidationAttribute/OneOfAttribute.cs
笨木头 ec45abc4d7 feat(module: form): support set validation rules on FormItem (#1516)
* 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>
2021-05-28 09:08:42 +00:00

41 lines
944 B
C#

using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Text.Json;
namespace AntDesign.Internal.Form.Validate
{
internal class OneOfAttribute : ValidationAttribute
{
internal object[] Values { get; set; }
internal OneOfAttribute(object[] values)
{
Values = values;
}
public override string FormatErrorMessage(string name)
{
return string.Format(CultureInfo.CurrentCulture, ErrorMessageString, name, JsonSerializer.Serialize(Values));
}
public override bool IsValid(object value)
{
if (value is Array)
{
return false;
}
foreach (var v in Values)
{
if (v.Equals(value))
{
return true;
}
}
return false;
}
}
}