Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
RegularExpressionAttribute.cs
Go to the documentation of this file.
1
using
System.Globalization
;
2
using
System.Text.RegularExpressions
;
3
4
namespace
System.ComponentModel.DataAnnotations
;
5
6
[AttributeUsage(
AttributeTargets
.Property |
AttributeTargets
.Field |
AttributeTargets
.Parameter, AllowMultiple =
false
)]
7
public
class
RegularExpressionAttribute
:
ValidationAttribute
8
{
9
public
int
MatchTimeoutInMilliseconds
{
get
;
set
; }
10
11
public
string
Pattern
{
get
; }
12
13
private
Regex
?
Regex
{
get
;
set
; }
14
15
public
RegularExpressionAttribute
(
string
pattern
)
16
: base(() =>
System
.
SR
.RegexAttribute_ValidationError)
17
{
18
Pattern
=
pattern
;
19
MatchTimeoutInMilliseconds
= 2000;
20
}
21
22
public
override
bool
IsValid
(
object
?
value
)
23
{
24
SetupRegex
();
25
string
text
=
Convert
.
ToString
(
value
,
CultureInfo
.
CurrentCulture
);
26
if
(
string
.IsNullOrEmpty(
text
))
27
{
28
return
true
;
29
}
30
Match
match
=
Regex
.
Match
(
text
);
31
if
(
match
.Success &&
match
.Index == 0)
32
{
33
return
match.Length ==
text
.Length;
34
}
35
return
false
;
36
}
37
38
public
override
string
FormatErrorMessage
(
string
name
)
39
{
40
SetupRegex
();
41
return
string
.Format(
CultureInfo
.
CurrentCulture
, base.ErrorMessageString,
name
,
Pattern
);
42
}
43
44
private
void
SetupRegex
()
45
{
46
if
(
Regex
==
null
)
47
{
48
if
(
string
.IsNullOrEmpty(
Pattern
))
49
{
50
throw
new
InvalidOperationException
(
System
.
SR
.
RegularExpressionAttribute_Empty_Pattern
);
51
}
52
Regex
= ((
MatchTimeoutInMilliseconds
== -1) ?
new
Regex
(
Pattern
) :
new
Regex
(
Pattern
,
RegexOptions
.None,
TimeSpan
.
FromMilliseconds
(
MatchTimeoutInMilliseconds
)));
53
}
54
}
55
}
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.RegularExpressionAttribute
RegularExpressionAttribute(string pattern)
Definition
RegularExpressionAttribute.cs:15
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.Pattern
string Pattern
Definition
RegularExpressionAttribute.cs:11
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.Regex
Regex? Regex
Definition
RegularExpressionAttribute.cs:13
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.SetupRegex
void SetupRegex()
Definition
RegularExpressionAttribute.cs:44
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.IsValid
override bool IsValid(object? value)
Definition
RegularExpressionAttribute.cs:22
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.FormatErrorMessage
override string FormatErrorMessage(string name)
Definition
RegularExpressionAttribute.cs:38
System.ComponentModel.DataAnnotations.RegularExpressionAttribute.MatchTimeoutInMilliseconds
int MatchTimeoutInMilliseconds
Definition
RegularExpressionAttribute.cs:9
System.ComponentModel.DataAnnotations.RegularExpressionAttribute
Definition
RegularExpressionAttribute.cs:8
System.ComponentModel.DataAnnotations.ValidationAttribute
Definition
ValidationAttribute.cs:8
System.Convert.ToString
static ? string ToString(object? value)
Definition
Convert.cs:2321
System.Convert
Definition
Convert.cs:10
System.Globalization.CultureInfo.CurrentCulture
static CultureInfo CurrentCulture
Definition
CultureInfo.cs:72
System.Globalization.CultureInfo
Definition
CultureInfo.cs:8
System.InvalidOperationException
Definition
InvalidOperationException.cs:9
System.SR.RegularExpressionAttribute_Empty_Pattern
static string RegularExpressionAttribute_Empty_Pattern
Definition
SR.cs:84
System.SR
Definition
SR.cs:7
System.Text.RegularExpressions.Match
Definition
Match.cs:4
System.Text.RegularExpressions.Regex.Match
static Match Match(string input, string pattern)
Definition
Regex.cs:439
System.Text.RegularExpressions.Regex
Definition
Regex.cs:14
System.ComponentModel.DataAnnotations
Definition
ColumnAttribute.cs:3
System.Globalization
Definition
Calendar.cs:1
System.Text.RegularExpressions.RegexOptions
RegexOptions
Definition
RegexOptions.cs:5
System.Text.RegularExpressions.ExceptionArgument.pattern
@ pattern
System.Text.RegularExpressions.ExceptionArgument.name
@ name
System.Text.RegularExpressions
Definition
Capture.cs:1
System.ExceptionArgument.text
@ text
System.ExceptionArgument.value
@ value
System.ExceptionArgument.match
@ match
System.AttributeTargets
AttributeTargets
Definition
AttributeTargets.cs:5
System
Definition
BlockingCollection.cs:8
System.TimeSpan.FromMilliseconds
static TimeSpan FromMilliseconds(double value)
Definition
TimeSpan.cs:228
System.TimeSpan
Definition
TimeSpan.cs:10
source
System.ComponentModel.Annotations
System.ComponentModel.DataAnnotations
RegularExpressionAttribute.cs
Generated by
1.10.0