mirror of
				https://github.com/nsnail/NetAdmin.git
				synced 2025-11-01 03:35:28 +08:00 
			
		
		
		
	refactor: ♻️ enum 扩展方法
This commit is contained in:
		| @@ -0,0 +1,16 @@ | ||||
| namespace NetAdmin.Infrastructure.Enums; | ||||
|  | ||||
| /// <summary> | ||||
| ///     枚举扩展方法 | ||||
| /// </summary> | ||||
| public static class EnumExtensions | ||||
| { | ||||
|     /// <summary> | ||||
|     ///     通过类泛型类型获取特性 | ||||
|     /// </summary> | ||||
|     public static T Attr<T>(this Enum me) | ||||
|         where T : Attribute | ||||
|     { | ||||
|         return me.GetType().GetMember(me.ToString())[0].GetCustomAttributes<T>(false).FirstOrDefault(); | ||||
|     } | ||||
| } | ||||
| @@ -1,6 +1,4 @@ | ||||
| using Microsoft.OpenApi.Extensions; | ||||
|  | ||||
| namespace NetAdmin.Infrastructure.Extensions; | ||||
| namespace NetAdmin.Infrastructure.Extensions; | ||||
|  | ||||
| /// <summary> | ||||
| ///     CountryCodes 扩展方法 | ||||
| @@ -12,6 +10,6 @@ public static class CountryCodesExtensions | ||||
|     /// </summary> | ||||
|     public static int GetCallingCode(this CountryCodes me) | ||||
|     { | ||||
|         return me.GetAttributeOfType<CountryInfoAttribute>().CallingCode; | ||||
|         return me.Attr<CountryInfoAttribute>().CallingCode; | ||||
|     } | ||||
| } | ||||
| @@ -1,5 +1,3 @@ | ||||
| using Microsoft.OpenApi.Extensions; | ||||
|  | ||||
| namespace NetAdmin.Infrastructure.Utils; | ||||
|  | ||||
| /// <summary> | ||||
| @@ -15,13 +13,13 @@ public static class PhoneNumberHelper | ||||
|     { | ||||
|         _countryList = Enum.GetValues<CountryCodes>() | ||||
|                            .SelectMany(x => { | ||||
|                                var attribute = x.GetAttributeOfType<CountryInfoAttribute>(); | ||||
|                                var attribute = x.Attr<CountryInfoAttribute>(); | ||||
|  | ||||
|                                // ReSharper disable once UseCollectionExpression | ||||
|                                return (attribute.CallingSubCode ?? new[] { string.Empty }).Select(y => (attribute.CallingCode + y, x)); | ||||
|                            }) | ||||
|                            .OrderBy(x => x.Item1) | ||||
|                            .ThenByDescending(x => x.x.GetAttributeOfType<CountryInfoAttribute>().IsPreferred) | ||||
|                            .ThenByDescending(x => x.x.Attr<CountryInfoAttribute>().IsPreferred) | ||||
|                            .DistinctBy(x => x.Item1) | ||||
|                            .OrderByDescending(x => x.Item1.Length); | ||||
|     } | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| using NetAdmin.Domain.Dto.Sys.UserProfile; | ||||
|  | ||||
| // ReSharper disable once CheckNamespace | ||||
| namespace NetAdmin.SysComponent.Application.Modules.Sys; | ||||
|  | ||||
| public partial interface IUserModule | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
| using Microsoft.OpenApi.Extensions; | ||||
| using NetAdmin.Domain.Attributes; | ||||
|  | ||||
| namespace NetAdmin.SysComponent.Application.Services.Sys; | ||||
| @@ -32,11 +31,11 @@ public sealed class ConstantService : ServiceBase<IConstantService>, IConstantSe | ||||
|         static string[] GetDicValue(Enum y) | ||||
|         { | ||||
|             var ret = new[] { Convert.ToInt64(y, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture), y.ResDesc<Ln>() }; | ||||
|             if (y is CountryCodes) { | ||||
|                 return [..ret, y.GetAttributeOfType<CountryInfoAttribute>().CallingCode.ToInvString()]; | ||||
|             if (y is CountryCodes z) { | ||||
|                 return [..ret, z.GetCallingCode().ToInvString()]; | ||||
|             } | ||||
|  | ||||
|             var indicate = y.GetAttributeOfType<IndicatorAttribute>()?.Indicate.ToLowerInvariant(); | ||||
|             var indicate = y.Attr<IndicatorAttribute>()?.Indicate.ToLowerInvariant(); | ||||
|             return indicate.NullOrEmpty() ? ret : [..ret, indicate]; | ||||
|         } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user