using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.Rendering;

namespace AMESCoreStudio.WebApi.Enum
{
    /// <summary>
    /// 
    /// </summary>
    public class EnumFQC
    {
        /// <summary>
        /// 抽樣計畫允收標準
        /// </summary>
        public enum EnumInspection_Type
        {
            /// <summary>
            /// First Insp.
            /// </summary>
            [Display(Name = "First Insp.")]
            A = 1,

            /// <summary>
            /// Minor
            /// </summary>
            [Display(Name = "Rework Insp.")]
            B = 2

        }

        /// <summary>
        /// 檢驗項目_類型
        /// </summary>
        public enum EnumQCItem_Type
        {
            /// <summary>
            /// Major
            /// </summary>
            [Display(Name = "Major")]
            A = 1,

            /// <summary>
            /// Minor
            /// </summary>
            [Display(Name = "Minor")]
            B = 2

        }

        /// <summary>
        /// AQL_類型
        /// </summary>
        public enum EnumAQL_Type
        {
            /// <summary>
            /// 成品99
            /// </summary>
            [Display(Name = "成品99")]
            A = 1,

            /// <summary>
            /// 半成品96
            /// </summary>
            [Display(Name = "半成品96")]
            B = 2
        }

        /// <summary>
        /// 檢驗地點
        /// </summary>
        public enum EnumInspection_Status
        {
            /// <summary>
            /// 廠驗
            /// </summary>
            [Display(Name = "廠驗")]
            A = 1,

            /// <summary>
            /// 委外
            /// </summary>
            [Display(Name = "委外")]
            B = 2,

            /// <summary>
            /// 免驗
            /// </summary>
            [Display(Name = "免驗")]
            C = 3,

            /// <summary>
            /// 無序號廠驗
            /// </summary>
            [Display(Name = "無序號廠驗")]
            D = 4,
        }

        /// <summary>
        /// Get Enum Display
        /// </summary>
        /// <param name="enumValue"></param>
        /// <returns></returns>
        public static string GetDisplayName(System.Enum enumValue)
        {
            return enumValue.GetType()?
           .GetMember(enumValue.ToString())?.First()?
           .GetCustomAttribute<DisplayAttribute>()?
           .Name;
        }
    }
}