using System;

/// <summary>
/// Get custom attribute extension
/// </summary>
public static class EnumExtension
{
    /// <summary>
    /// Check if enum has attribute type
    /// Example usage  bool c = Biz.SockType.License.HasAttribute(typeof(Biz.AttachableAttribute));
    ///
    /// </summary>
    /// <param name="value"></param>
    /// <param name="t"></param>
    /// <returns></returns>
    public static bool HasAttribute(this Enum value, Type t)
    {
        var type = value.GetType();
        var name = Enum.GetName(type, value);
        if (name != null)
        {
            var field = type.GetField(name);
            if (field != null)
            {
                var attr =
                    Attribute.GetCustomAttribute(field, t);
                if (attr != null)
                {
                    return true;
                }
            }
        }

        return false;
    }
}