From 8f906ad49ffee7a5712897248d7e0971290daef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 25 Apr 2020 17:06:33 +0300 Subject: [PATCH] Added more extension methods for ObjectExtensionManager --- .../ObjectExtensionManagerExtensions.cs | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs index 1dd8bfb6b1..4344152345 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Collections.Immutable; using JetBrains.Annotations; using Volo.Abp.Data; @@ -80,6 +82,16 @@ namespace Volo.Abp.ObjectExtending }); } + public static ObjectExtensionPropertyInfo GetPropertyOrNull( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] string propertyName) + { + return objectExtensionManager.GetPropertyOrNull( + typeof(TObject), + propertyName + ); + } + public static ObjectExtensionPropertyInfo GetPropertyOrNull( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] Type objectType, @@ -93,5 +105,26 @@ namespace Volo.Abp.ObjectExtending .GetOrNull(objectType)? .GetPropertyOrNull(propertyName); } + + private static readonly ImmutableList EmptyPropertyList + = new List().ToImmutableList(); + + public static ImmutableList GetProperties( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] Type objectType, + [NotNull] string propertyName) + { + Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); + Check.NotNull(objectType, nameof(objectType)); + Check.NotNull(propertyName, nameof(propertyName)); + + var extensionInfo = objectExtensionManager.GetOrNull(objectType); + if (extensionInfo == null) + { + return EmptyPropertyList; + } + + return extensionInfo.GetProperties(); + } } } \ No newline at end of file