From c9e0ae2e42aa8743775f07a08aa99306fd2f8269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 5 Apr 2020 22:49:23 +0300 Subject: [PATCH] Add methods to perform object extension configuration for multiple types at once. --- .../ObjectExtending/ObjectExtensionManager.cs | 15 +++++++ .../ObjectExtensionManagerExtensions.cs | 41 ++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs index 9fd50da492..9f97b45261 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManager.cs @@ -25,6 +25,21 @@ namespace Volo.Abp.ObjectExtending return AddOrUpdate(typeof(TObject), configureAction); } + [NotNull] + public virtual ObjectExtensionManager AddOrUpdate( + [NotNull] Type[] types, + [CanBeNull] Action configureAction = null) + { + Check.NotNull(types, nameof(types)); + + foreach (var type in types) + { + AddOrUpdate(type, configureAction); + } + + return this; + } + [NotNull] public virtual ObjectExtensionManager AddOrUpdate( [NotNull] Type type, 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 d21a8c22e1..21d139913b 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs @@ -6,10 +6,25 @@ namespace Volo.Abp.ObjectExtending { public static class ObjectExtensionManagerExtensions { + [NotNull] + public static ObjectExtensionManager AddOrUpdateProperty( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] Type[] objectTypes, + [NotNull] string propertyName, + [CanBeNull] Action configureAction = null) + { + return objectExtensionManager.AddOrUpdateProperty( + objectTypes, + typeof(TProperty), + propertyName, configureAction + ); + } + + [NotNull] public static ObjectExtensionManager AddOrUpdateProperty( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] string propertyName, - [CanBeNull] Action configureAction = null) + [CanBeNull] Action configureAction = null) where TObject : IHasExtraProperties { return objectExtensionManager.AddOrUpdateProperty( @@ -20,6 +35,30 @@ namespace Volo.Abp.ObjectExtending ); } + [NotNull] + public static ObjectExtensionManager AddOrUpdateProperty( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] Type[] objectTypes, + [NotNull] Type propertyType, + [NotNull] string propertyName, + [CanBeNull] Action configureAction = null) + { + Check.NotNull(objectTypes, nameof(objectTypes)); + + foreach (var objectType in objectTypes) + { + objectExtensionManager.AddOrUpdateProperty( + objectType, + propertyType, + propertyName, + configureAction + ); + } + + return objectExtensionManager; + } + + [NotNull] public static ObjectExtensionManager AddOrUpdateProperty( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] Type objectType,