|  |  | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; | 
 |  |  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; | 
 |  |  | using System; | 
 |  |  | using System.Collections.Generic; | 
 |  |  | using System.ComponentModel; | 
 |  |  | 
 |  |  | using WIDESEA_Core.DB; | 
 |  |  | using WIDESEA_Core.Enums; | 
 |  |  | using WIDESEA_Core.Helper; | 
 |  |  | using WIDESEA_Core.Utilities; | 
 |  |  | using WIDESEA_DTO.System; | 
 |  |  | using WIDESEA_IBasicRepository; | 
 |  |  | using WIDESEA_ISystemRepository; | 
 |  |  | using WIDESEA_ISystemService; | 
 |  |  | using WIDESEA_Model.Models; | 
 |  |  | 
 |  |  |     { | 
 |  |  |         private readonly IUnitOfWorkManage _unitOfWorkManage; | 
 |  |  |         private readonly ICacheService _cacheService; | 
 |  |  |         private readonly IBasicRepository _basicRepository; | 
 |  |  |         private readonly ISupplierInfoRepository _supplierInfoRepository; | 
 |  |  |         private readonly ISys_RoleDataPermissionRepository _roleDataPermissionRepository; | 
 |  |  |  | 
 |  |  |         public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService) : base(BaseDal) | 
 |  |  |         public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, IBasicRepository basicRepository, ISys_RoleDataPermissionRepository roleDataPermissionRepository, ISupplierInfoRepository supplierInfoRepository) : base(BaseDal) | 
 |  |  |         { | 
 |  |  |             _unitOfWorkManage = unitOfWorkManage; | 
 |  |  |             _cacheService = cacheService; | 
 |  |  |             _basicRepository = basicRepository; | 
 |  |  |             _roleDataPermissionRepository = roleDataPermissionRepository; | 
 |  |  |             _supplierInfoRepository = supplierInfoRepository; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public ISys_DictionaryRepository Repository => BaseDal; | 
 |  |  |  | 
 |  |  |         public override WebResponseContent AddData(SaveModel saveModel) | 
 |  |  |         { | 
 |  |  |             string validResult = typeof(Sys_Dictionary).ValidateDicInEntity(saveModel.MainData, true, TProperties); | 
 |  |  |  | 
 |  |  |             if (!string.IsNullOrEmpty(validResult)) | 
 |  |  |             { | 
 |  |  |                 return WebResponseContent.Instance.Error(validResult); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             Sys_Dictionary dictionary = saveModel.MainData.DicToModel<Sys_Dictionary>(); | 
 |  |  |             _cacheService.Remove(dictionary.DicNo); | 
 |  |  |             if (!string.IsNullOrEmpty(_cacheService.Get(dictionary.DicNo))) | 
 |  |  |                 _cacheService.Remove(dictionary.DicNo); | 
 |  |  |             return base.AddData(saveModel); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |                     DicNo = s.DicNo, | 
 |  |  |                     Config = s.Config, | 
 |  |  |                     //dbSql = s.Sql, | 
 |  |  |                     Data = s.DicList.OrderByDescending(o => o.OrderNo).Select(list => new { key = list.DicValue, value = list.DicName }) | 
 |  |  |                     Data = s.DicList.OrderByDescending(o => o.OrderNo).Select(list => new { key = list.DicValue, value = list.DicName }), | 
 |  |  |                     SaveCache = false | 
 |  |  |                 }).ToList(); | 
 |  |  |  | 
 |  |  |                 foreach (var item in selectDics) | 
 |  |  |                 { | 
 |  |  |                     if (!_cacheService.Exists(item.DicNo)) | 
 |  |  |                     if (!_cacheService.Exists(item.DicNo) && item.SaveCache) | 
 |  |  |                     { | 
 |  |  |                         _cacheService.Add(item.DicNo, item.Serialize()); | 
 |  |  |                     } | 
 |  |  | 
 |  |  |  | 
 |  |  |                         foreach (var item in dics) | 
 |  |  |                         { | 
 |  |  |                             dicList.Remove(item); | 
 |  |  |                             cusDics.Add(item); | 
 |  |  |                             if (dicNos.Contains(item) && !cacheDicNos.Contains(item)) | 
 |  |  |                             { | 
 |  |  |                                 dicList.Remove(item); | 
 |  |  |                                 cusDics.Add(item); | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         foreach (var item in cusDics) | 
 |  |  | 
 |  |  |                             if (vueDictionaryDTO != null) | 
 |  |  |                             { | 
 |  |  |                                 vueDictionaryDTOs.Add(vueDictionaryDTO); | 
 |  |  |                                 if (!_cacheService.Exists(item)) | 
 |  |  |                                 if (!_cacheService.Exists(item) && vueDictionaryDTO.SaveCache) | 
 |  |  |                                 { | 
 |  |  |                                     _cacheService.Add(item, vueDictionaryDTO.Serialize()); | 
 |  |  |                                 } | 
 |  |  | 
 |  |  |             { | 
 |  |  |                 switch (key) | 
 |  |  |                 { | 
 |  |  |                     case "warehouses": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in warehouses) | 
 |  |  |                                 { | 
 |  |  |                                     data.Add(new { key = item.WarehouseId, value = item.WarehouseName }); | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "suppliers": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 List<Dt_SupplierInfo> supplierInfos = _supplierInfoRepository.QueryData(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in supplierInfos) | 
 |  |  |                                 { | 
 |  |  |                                     data.Add(new { key = item.SupplierCode, value = item.SupplierCode }); | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "materials": | 
 |  |  |                         { | 
 |  |  |                             { | 
 |  |  |                                 List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                                 { | 
 |  |  |                                     List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(); | 
 |  |  |                                     int index = 0; | 
 |  |  |                                     foreach (var item in materielInfos) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.MaterielCode, value = item.MaterielCode }); | 
 |  |  |                                         index++; | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |  | 
 |  |  |                                 result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "taskType": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             #region TaskTypeEnum | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(TaskTypeEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(TaskTypeEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(TaskTypeEnum).GetField(((TaskTypeEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                             #endregion | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "inboundState": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(TaskTypeEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(TaskTypeEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(TaskTypeEnum).GetField(((TaskTypeEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                             //{ | 
 |  |  |                             //    Type type = typeof(TaskTypeEnum); | 
 |  |  |                             //    List<int> enums = Enum.GetValues(typeof(TaskTypeEnum)).Cast<int>().ToList(); | 
 |  |  |                             //    int index = 0; | 
 |  |  |                             //    foreach (var item in enums) | 
 |  |  |                             //    { | 
 |  |  |                             //        FieldInfo? fieldInfo = typeof(TaskTypeEnum).GetField(((TaskTypeEnum)item).ToString()); | 
 |  |  |                             //        DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                             //        if (description != null) | 
 |  |  |                             //        { | 
 |  |  |                             //            data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                             //        } | 
 |  |  |                             //        else | 
 |  |  |                             //        { | 
 |  |  |                             //            data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                             //        } | 
 |  |  |                             //        index++; | 
 |  |  |                             //    } | 
 |  |  |                             //} | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(InTaskStatusEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(InTaskStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                                 Type type = typeof(TaskStatusEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(TaskStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(InTaskStatusEnum).GetField(((InTaskStatusEnum)item).ToString()); | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(TaskStatusEnum).GetField(((TaskStatusEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(OutTaskStatusEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(OutTaskStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(OutTaskStatusEnum).GetField(((OutTaskStatusEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                             //{ | 
 |  |  |                             //    Type type = typeof(TaskStatusEnum); | 
 |  |  |                             //    List<int> enums = Enum.GetValues(typeof(TaskStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                             //    int index = 0; | 
 |  |  |                             //    foreach (var item in enums) | 
 |  |  |                             //    { | 
 |  |  |                             //        FieldInfo? fieldInfo = typeof(TaskStatusEnum).GetField(((TaskStatusEnum)item).ToString()); | 
 |  |  |                             //        DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                             //        if (description != null) | 
 |  |  |                             //        { | 
 |  |  |                             //            data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                             //        } | 
 |  |  |                             //        else | 
 |  |  |                             //        { | 
 |  |  |                             //            data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                             //        } | 
 |  |  |                             //        index++; | 
 |  |  |                             //    } | 
 |  |  |                             //} | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "receiveOrderTypeEnum": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(ReceiveOrderTypeEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(ReceiveOrderTypeEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(ReceiveOrderTypeEnum).GetField(((ReceiveOrderTypeEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "authorityScope": | 
 |  |  |                         { | 
 |  |  |                             if (App.User.IsSuperAdmin) | 
 |  |  |                             { | 
 |  |  |                                 List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(x => true); | 
 |  |  |                                 var data = warehouses.Select(x => new { key = x.WarehouseId, value = x.WarehouseName }); | 
 |  |  |                                 result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                             } | 
 |  |  |                             else | 
 |  |  |                             { | 
 |  |  |                                 List<Sys_RoleDataPermission> roleDataPermissions = _roleDataPermissionRepository.QueryData(x => x.RoleId == App.User.RoleId); | 
 |  |  |                                 var data = roleDataPermissions.Select(x => new { key = x.WarehouseId, value = x.WarehouseName }); | 
 |  |  |                                 result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "authorityScopes": | 
 |  |  |                         { | 
 |  |  |                             List<Sys_Role> roles = Repository.Db.Queryable<Sys_Role>().ToList(); | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |                             foreach (var item in roles) | 
 |  |  |                             { | 
 |  |  |                                 List<Sys_RoleDataPermission> roleDataPermissions = _roleDataPermissionRepository.QueryData(x => x.RoleId == item.RoleId); | 
 |  |  |                                 string value = ""; | 
 |  |  |                                 foreach (var roleDataPermission in roleDataPermissions) | 
 |  |  |                                 { | 
 |  |  |                                     value += (roleDataPermission.WarehouseName + ","); | 
 |  |  |                                 } | 
 |  |  |                                 if (roleDataPermissions.Count > 0) | 
 |  |  |                                     data.Add(new { key = item.RoleId, value = value.Substring(0, value.Length - 1) }); | 
 |  |  |                                 else | 
 |  |  |                                     data.Add(new { key = item.RoleId, value = "æ æé" }); | 
 |  |  |                             } | 
 |  |  |                             data.Add(new { key = -1, value = "æ æé" }); | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data, SaveCache = false }; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         break; | 
 |  |  |                     case "locationChangeType": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(LocationChangeType); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(LocationChangeType)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(LocationChangeType).GetField(((LocationChangeType)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "receiveStatus": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(ReceiveOrderStatusEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(ReceiveOrderStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(ReceiveOrderStatusEnum).GetField(((ReceiveOrderStatusEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break;  | 
 |  |  |                     case "purchaseType": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(PurchaseOrderTypeEnum); | 
 |  |  |                                 List<string> enums = Enum.GetValues(typeof(PurchaseOrderTypeEnum)).Cast<string>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     //FieldInfo? fieldInfo = typeof(PurchaseOrderTypeEnum).GetField(((PurchaseOrderTypeEnum)item).ToString()); | 
 |  |  |                                     //DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     //if (description != null) | 
 |  |  |                                     //{ | 
 |  |  |                                     //    data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     //} | 
 |  |  |                                     //else | 
 |  |  |                                     //{ | 
 |  |  |                                     //    data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     //} | 
 |  |  |                                     //index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break;  | 
 |  |  |                     case "purchaseOrderStatus": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(PurchaseOrderStatusEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(PurchaseOrderStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(PurchaseOrderStatusEnum).GetField(((PurchaseOrderStatusEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case "printStatus": | 
 |  |  |                         { | 
 |  |  |                             List<object> data = new List<object>(); | 
 |  |  |  | 
 |  |  |                             { | 
 |  |  |                                 Type type = typeof(PrintStatusEnum); | 
 |  |  |                                 List<int> enums = Enum.GetValues(typeof(PrintStatusEnum)).Cast<int>().ToList(); | 
 |  |  |                                 int index = 0; | 
 |  |  |                                 foreach (var item in enums) | 
 |  |  |                                 { | 
 |  |  |                                     FieldInfo? fieldInfo = typeof(PrintStatusEnum).GetField(((PrintStatusEnum)item).ToString()); | 
 |  |  |                                     DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
 |  |  |                                     if (description != null) | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = description.Description }); | 
 |  |  |                                     } | 
 |  |  |                                     else | 
 |  |  |                                     { | 
 |  |  |                                         data.Add(new { key = item.ToString(), value = item.ToString() }); | 
 |  |  |                                     } | 
 |  |  |                                     index++; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                 } | 
 |  |  |                 return result; | 
 |  |  |             } |