using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Enums
{
    /// <summary>
    /// 月份枚举
    /// </summary>
    public enum MonthEnum
    {
        /// <summary>
        /// 一月
        /// </summary>
        [Description("一月")]
        Jan = 1,
        /// <summary>
        /// 二月
        /// </summary>
        [Description("二月")]
        Feb,
        /// <summary>
        /// 三月
        /// </summary>
        [Description("三月")]
        Mar,
        /// <summary>
        /// 四月
        /// </summary>
        [Description("四月")]
        Apr,
        /// <summary>
        /// 五月
        /// </summary>
        [Description("五月")]
        May,
        /// <summary>
        /// 六月
        /// </summary>
        [Description("六月")]
        Jun,
        /// <summary>
        /// 七月
        /// </summary>
        [Description("七月")]
        Jul,
        /// <summary>
        /// 八月
        /// </summary>
        [Description("八月")]
        Aug,
        /// <summary>
        /// 九月
        /// </summary>
        [Description("九月")]
        Sep,
        /// <summary>
        /// 十月
        /// </summary>
        [Description("十月")]
        Oct,
        /// <summary>
        /// 十一月
        /// </summary>
        [Description("十一月")]
        Nov,
        /// <summary>
        /// 十二月
        /// </summary>
        [Description("十二月")]
        Dec,
    }
    
    static class EnumExtensions
    {
        public static string GetDescription(this Enum val)
        {
            var field = val.GetType().GetField(val.ToString());
            if (field != null)
            {
                var customAttribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute));
                return customAttribute == null ? val.ToString() : ((DescriptionAttribute)customAttribute).Description;
            }
            return string.Empty;
        }
    }
}