diff --git a/AyCode.Core.Server/AyCode.Core.Server.csproj b/AyCode.Core.Server/AyCode.Core.Server.csproj index be8372c..e6667b7 100644 --- a/AyCode.Core.Server/AyCode.Core.Server.csproj +++ b/AyCode.Core.Server/AyCode.Core.Server.csproj @@ -8,7 +8,7 @@ - + diff --git a/AyCode.Core.Tests.Internal/AyCode.Core.Tests.Internal.csproj b/AyCode.Core.Tests.Internal/AyCode.Core.Tests.Internal.csproj index 72c7735..d7713b9 100644 --- a/AyCode.Core.Tests.Internal/AyCode.Core.Tests.Internal.csproj +++ b/AyCode.Core.Tests.Internal/AyCode.Core.Tests.Internal.csproj @@ -16,10 +16,10 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/AyCode.Core.Tests/AyCode.Core.Tests.csproj b/AyCode.Core.Tests/AyCode.Core.Tests.csproj index 8a35ab1..d650573 100644 --- a/AyCode.Core.Tests/AyCode.Core.Tests.csproj +++ b/AyCode.Core.Tests/AyCode.Core.Tests.csproj @@ -12,10 +12,10 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/AyCode.Core/AyCode.Core.csproj b/AyCode.Core/AyCode.Core.csproj index e957185..b574cc3 100644 --- a/AyCode.Core/AyCode.Core.csproj +++ b/AyCode.Core/AyCode.Core.csproj @@ -13,9 +13,9 @@ - + - + diff --git a/AyCode.Core/Extensions/EnumExtensions.cs b/AyCode.Core/Extensions/EnumExtensions.cs new file mode 100644 index 0000000..bb1fed4 --- /dev/null +++ b/AyCode.Core/Extensions/EnumExtensions.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace AyCode.Core.Extensions +{ + public static class EnumExtensions + { + private static readonly ConcurrentDictionary> DisplayNameCache = new(); + + private static T? GetAttributeOfType(this Enum enumValue) where T : Attribute + { + var type = enumValue.GetType(); + var memInfo = type.GetField(enumValue.ToString(), BindingFlags.Public | BindingFlags.Static); + + if (memInfo == null) return null; + + var attributes = memInfo.GetCustomAttributes(false); + return attributes.FirstOrDefault(); + } + + //public static string GetDisplayValuesName(this Enum enumValue) + //=> DisplayNameCache[enumValue] + + public static string GetDisplayName2(this T enumValue) where T : class + { + return string.Empty; + //return GetDisplayAttribute(enumValue).Name!; + } + + public static string GetDisplayName(this Enum enumValue) + { + return GetDisplayAttribute(enumValue).Name!; + } + + public static DisplayAttribute GetDisplayAttribute(this Enum enumValue) + { + return new DisplayAttribute(); + //return DisplayNameCache.GetOrAdd(enumValue, e => + //{ + // var displayAttribute = e.GetAttributeOfType(); + // if (displayAttribute != null) return displayAttribute; + + // var name = e.ToString(); + // return new DisplayAttribute { Name = name, ShortName = name, Prompt = name, Description = name }; + //}); + } + } +} + diff --git a/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj b/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj index d528311..34e2e86 100644 --- a/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj +++ b/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj @@ -26,10 +26,10 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/AyCode.Database.Tests/AyCode.Database.Tests.csproj b/AyCode.Database.Tests/AyCode.Database.Tests.csproj index 2b3b3c7..ee14273 100644 --- a/AyCode.Database.Tests/AyCode.Database.Tests.csproj +++ b/AyCode.Database.Tests/AyCode.Database.Tests.csproj @@ -11,12 +11,12 @@ - + - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/AyCode.Database/AyCode.Database.csproj b/AyCode.Database/AyCode.Database.csproj index 2c882f3..c9ddc03 100644 --- a/AyCode.Database/AyCode.Database.csproj +++ b/AyCode.Database/AyCode.Database.csproj @@ -8,11 +8,11 @@ - - - - - + + + + + diff --git a/AyCode.Entities.Server/AyCode.Entities.Server.csproj b/AyCode.Entities.Server/AyCode.Entities.Server.csproj index 75b6138..1670558 100644 --- a/AyCode.Entities.Server/AyCode.Entities.Server.csproj +++ b/AyCode.Entities.Server/AyCode.Entities.Server.csproj @@ -8,7 +8,7 @@ - + diff --git a/AyCode.Entities/AyCode.Entities.csproj b/AyCode.Entities/AyCode.Entities.csproj index 7c00a13..cdf86bc 100644 --- a/AyCode.Entities/AyCode.Entities.csproj +++ b/AyCode.Entities/AyCode.Entities.csproj @@ -16,7 +16,7 @@ - + diff --git a/AyCode.Services.Server.Tests/AyCode.Services.Server.Tests.csproj b/AyCode.Services.Server.Tests/AyCode.Services.Server.Tests.csproj index c5d75ec..cbc8670 100644 --- a/AyCode.Services.Server.Tests/AyCode.Services.Server.Tests.csproj +++ b/AyCode.Services.Server.Tests/AyCode.Services.Server.Tests.csproj @@ -15,12 +15,12 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - - - + + + + diff --git a/AyCode.Services.Server/AyCode.Services.Server.csproj b/AyCode.Services.Server/AyCode.Services.Server.csproj index f8e20d7..3a1bffa 100644 --- a/AyCode.Services.Server/AyCode.Services.Server.csproj +++ b/AyCode.Services.Server/AyCode.Services.Server.csproj @@ -8,7 +8,7 @@ - + diff --git a/AyCode.Services/AyCode.Services.csproj b/AyCode.Services/AyCode.Services.csproj index d68e19f..6db77fa 100644 --- a/AyCode.Services/AyCode.Services.csproj +++ b/AyCode.Services/AyCode.Services.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/AyCode.Utils/AyCode.Utils.csproj b/AyCode.Utils/AyCode.Utils.csproj index 9407071..1cbeeb2 100644 --- a/AyCode.Utils/AyCode.Utils.csproj +++ b/AyCode.Utils/AyCode.Utils.csproj @@ -9,7 +9,7 @@ - +