using DeviceRepair.Models;
using System.Collections.Generic;

namespace DeviceRepair.Utils
{
    public class EnumMaintenanceTypeHelper
    {
        public static EnumMaintenanceType MatchToEnum(string value)
        {
            EnumMaintenanceType e = EnumMaintenanceType.None;
            switch (value.ToLower())
            {
                case "annual":
                case "每年":
                    e = EnumMaintenanceType.Annual;
                    break;
                case "奇数年":
                    e = EnumMaintenanceType.OddAnnual;
                    break;
                case "偶数年":
                    e = EnumMaintenanceType.EvenAnnual;
                    break;
                case "monthly":
                case "月度":
                    e = EnumMaintenanceType.Monthly;
                    break;
                case "quarterly":
                case "季度":
                    e = EnumMaintenanceType.Quarterly;
                    break;
                case "semi-an":
                case "半年":
                    e = EnumMaintenanceType.Semian;
                    break;
                default:
                    break;
            }
            return e;
        }

        public static List<EnumMaintenanceType> MatchToEnum(string value, System.DateTime CurrentDate)
        {
            List<EnumMaintenanceType> e = new List<EnumMaintenanceType>();

            switch (value.ToLower())
            {
                case "annual":
                case "每年":
                    e.Add(EnumMaintenanceType.Annual);
                    if (CurrentDate.Year % 2 == 1)
                        e.Add(EnumMaintenanceType.OddAnnual);
                    else
                        e.Add(EnumMaintenanceType.EvenAnnual);
                    e.Add(EnumMaintenanceType.Semian);
                    e.Add(EnumMaintenanceType.Quarterly);
                    e.Add(EnumMaintenanceType.Monthly);
                    break;
                case "奇数年":
                    if (CurrentDate.Year % 2 == 1)
                        e.Add(EnumMaintenanceType.OddAnnual);
                    e.Add(EnumMaintenanceType.Semian);
                    e.Add(EnumMaintenanceType.Quarterly);
                    e.Add(EnumMaintenanceType.Monthly);
                    break;
                case "偶数年":
                    if (CurrentDate.Year % 2 == 0)
                        e.Add(EnumMaintenanceType.EvenAnnual);
                    e.Add(EnumMaintenanceType.Semian);
                    e.Add(EnumMaintenanceType.Quarterly);
                    e.Add(EnumMaintenanceType.Monthly);
                    break;
                case "semi-an":
                case "半年":
                    e.Add(EnumMaintenanceType.Semian);
                    e.Add(EnumMaintenanceType.Quarterly);
                    e.Add(EnumMaintenanceType.Monthly);
                    break;
                case "quarterly":
                case "季度":
                    e.Add(EnumMaintenanceType.Quarterly);
                    e.Add(EnumMaintenanceType.Monthly);
                    break;
                case "monthly":
                case "月度":
                    e.Add(EnumMaintenanceType.Monthly);
                    break;
                default:
                    break;
            }
            return e;
        }
    }
}
