using Core.Abstractions; using System.Diagnostics.CodeAnalysis; namespace DomainObjects.Enumerations; public class Locales : Enumeration, IParsable { 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(s ?? ""); return true; } catch { return false; } } }