33 lines
948 B
C#
33 lines
948 B
C#
using Core.Abstractions;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
namespace DomainObjects.Enumerations;
|
|
public class Locales : Enumeration, IParsable<Locales> {
|
|
public static Locales Unknown = new(-1, "Unknown");
|
|
public static Locales Us = new(0, "en-US");
|
|
public static Locales Ru = new(1, "ru-RU");
|
|
public static Locales It = new(2, "it-IT");
|
|
|
|
private Locales(int id, string displayName) : base (id, displayName) { }
|
|
|
|
public static Locales Parse(string s, IFormatProvider? provider) {
|
|
if (!TryParse(s, provider, out var result)) {
|
|
throw new ArgumentException("Could not parse supplied value.", nameof(s));
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, [MaybeNullWhen(false)] out Locales result) {
|
|
result = Unknown;
|
|
|
|
try {
|
|
result = FromDisplayName<Locales>(s ?? "");
|
|
return true;
|
|
}
|
|
catch {
|
|
return false;
|
|
}
|
|
}
|
|
}
|