using System;
using System.Collections.Generic;
using System.Linq;
namespace Cosmos.Build.Common
{
public class EnumValue
{
///
/// Parse string to enumeration.
///
/// Type of enumeration to use.
/// Value which should be parsed as the enumeration.
/// Default value to use, if input string contains invalid value.
/// Parsed value, or default value if input string is invalid.
public static T Parse(string value, T @default)
where T : struct
{
T result = @default;
Type valueType = typeof(T);
if (valueType.IsEnum == false)
{
throw new ArgumentException("Enum types only supported.", "T");
}
if (String.IsNullOrEmpty(value) == false)
{
Enum.TryParse(value, true, out result);
}
return result;
}
public static EnumValue Find(System.Collections.IEnumerable items, Enum value)
{
foreach (Object item in items)
{
if (item is EnumValue)
{
if (Equals(((EnumValue)item).Value, value) == true)
{
return (EnumValue)item;
}
}
}
return null;
}
public static EnumValue[] GetEnumValues(Type enumType, bool aSort)
{
if (!enumType.IsEnum)
{
throw new Exception("Invalid type, only enum types allowed.");
}
var xList = new List();
IEnumerable