using System;
using System.Collections.Generic;
using System.ComponentModel;
using CoreCms.Net.Model.ViewModels.UI;
namespace CoreCms.Net.Utility.Helper
{
public class EnumHelper
{
///
/// 将枚举转成List
///
///
///
public static List EnumToList()
{
List list = new List();
foreach (var e in Enum.GetValues(typeof(T)))
{
EnumEntity m = new EnumEntity();
object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
if (objArr != null && objArr.Length > 0)
{
DescriptionAttribute da = objArr[0] as DescriptionAttribute;
m.description = da.Description;
}
m.value = Convert.ToInt32(e);
m.title = e.ToString();
list.Add(m);
}
return list;
}
///
/// 根据枚举值来获取单个枚举实体
///
/// 枚举
/// value
///
public static EnumEntity GetEnumberEntity(int value)
{
foreach (var e in Enum.GetValues(typeof(T)))
{
EnumEntity m = new EnumEntity();
object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
if (objArr != null && objArr.Length > 0)
{
DescriptionAttribute da = objArr[0] as DescriptionAttribute;
m.description = da.Description;
}
m.value = Convert.ToInt32(e);
m.title = e.ToString();
if (value == m.value)
{
return m;
}
}
return null;
}
///
/// 根据枚举值value来获取单个枚举实体的文字描述内容
///
/// 枚举
/// value
///
public static string GetEnumDescriptionByValue(int value)
{
foreach (var e in Enum.GetValues(typeof(T)))
{
EnumEntity m = new EnumEntity();
object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
if (objArr != null && objArr.Length > 0)
{
DescriptionAttribute da = objArr[0] as DescriptionAttribute;
m.description = da.Description;
}
m.value = Convert.ToInt32(e);
m.title = e.ToString();
if (value == m.value)
{
return m.description;
}
}
return "";
}
///
/// 根据枚举key来获取单个枚举实体的文字描述内容
///
/// 枚举
/// value
///
public static string GetEnumDescriptionByKey(string key)
{
foreach (var e in Enum.GetValues(typeof(T)))
{
EnumEntity m = new EnumEntity();
object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
if (objArr != null && objArr.Length > 0)
{
DescriptionAttribute da = objArr[0] as DescriptionAttribute;
m.description = da.Description;
}
m.value = Convert.ToInt32(e);
m.title = e.ToString();
if (key == m.title)
{
return m.description;
}
}
return "";
}
}
}