Languages object
public class Languages
{
public static readonly Languages Ru = new Languages("ru");
public static readonly Languages En = new Languages("en");
private Languages(string lang)
{
Name = lang;
}
public string Name { get; private set; }
public static readonly List<Languages> All = new List<Languages> { Ru, En };
public static implicit operator Languages(string lang)
{
var result = All.FirstOrDefault(l => string.Equals(l.Name, lang, StringComparison.OrdinalIgnoreCase));
if (result == null)
throw new ApplicationException(string.Format("Language '{0}' is not supported", lang));
return result;
}
public static implicit operator string(Languages lang)
{
return lang.Name;
}
public static bool TryParse(string name, out Languages value)
{
value = All.FirstOrDefault(languages => languages.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase));
return value != null;
}
public override string ToString()
{
return Name;
}
}