Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FileExtensionsAttribute.cs
Go to the documentation of this file.
3using System.IO;
4using System.Linq;
5
7
8[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
10{
11 private string _extensions;
12
13 public string Extensions
14 {
15 get
16 {
17 if (!string.IsNullOrWhiteSpace(_extensions))
18 {
19 return _extensions;
20 }
21 return "png,jpg,jpeg,gif";
22 }
23 set
24 {
26 }
27 }
28
29 private string ExtensionsFormatted => ExtensionsParsed.Aggregate((string left, string right) => left + ", " + right);
30
31 private string ExtensionsNormalized => Extensions.Replace(" ", string.Empty).Replace(".", string.Empty).ToLowerInvariant();
32
34 select "." + e;
35
38 {
39 base.DefaultErrorMessage = System.SR.FileExtensionsAttribute_Invalid;
40 }
41
42 public override string FormatErrorMessage(string name)
43 {
44 return string.Format(CultureInfo.CurrentCulture, base.ErrorMessageString, name, ExtensionsFormatted);
45 }
46
47 public override bool IsValid(object? value)
48 {
49 if (value != null)
50 {
51 if (value is string fileName)
52 {
54 }
55 return false;
56 }
57 return true;
58 }
59
60 private bool ValidateExtension(string fileName)
61 {
62 return ExtensionsParsed.Contains(Path.GetExtension(fileName).ToLowerInvariant());
63 }
64}
static CultureInfo CurrentCulture
static ? string GetExtension(string? path)
Definition Path.cs:168
static string FileExtensionsAttribute_Invalid
Definition SR.cs:54
Definition SR.cs:7