From bf057e921489547caa827a393055eed31da05e89 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 25 Nov 2020 10:46:59 +0800 Subject: [PATCH] Use ModuleExtensionConfigurationHelper one time for each module --- .../AbpAuditLoggingDomainModule.cs | 30 ++++++++------ .../AbpIdentityApplicationContractsModule.cs | 16 +++++--- .../AbpIdentityWebModule.cs | 36 ++++++++++------- .../AbpIdentityServerDomainModule.cs | 40 +++++++++++-------- ...antManagementApplicationContractsModule.cs | 22 ++++++---- .../AbpTenantManagementDomainModule.cs | 16 +++++--- .../AbpTenantManagementWebModule.cs | 20 ++++++---- 7 files changed, 110 insertions(+), 70 deletions(-) diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs index b2d2505004..c5e94f633a 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AbpAuditLoggingDomainModule.cs @@ -3,6 +3,7 @@ using Volo.Abp.Domain; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.AuditLogging { @@ -11,25 +12,30 @@ namespace Volo.Abp.AuditLogging [DependsOn(typeof(AbpAuditLoggingDomainSharedModule))] public class AbpAuditLoggingDomainModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( AuditLoggingModuleExtensionConsts.ModuleName, AuditLoggingModuleExtensionConsts.EntityNames.AuditLog, typeof(AuditLog) - ); + ); - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - AuditLoggingModuleExtensionConsts.ModuleName, - AuditLoggingModuleExtensionConsts.EntityNames.AuditLogAction, - typeof(AuditLogAction) - ); + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + AuditLoggingModuleExtensionConsts.ModuleName, + AuditLoggingModuleExtensionConsts.EntityNames.AuditLogAction, + typeof(AuditLogAction) + ); - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - AuditLoggingModuleExtensionConsts.ModuleName, - AuditLoggingModuleExtensionConsts.EntityNames.EntityChange, - typeof(EntityChange) - ); + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + AuditLoggingModuleExtensionConsts.ModuleName, + AuditLoggingModuleExtensionConsts.EntityNames.EntityChange, + typeof(EntityChange) + ); + }); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs index 43481ff30a..5ce1ed6755 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/AbpIdentityApplicationContractsModule.cs @@ -5,6 +5,7 @@ using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.PermissionManagement; using Volo.Abp.Users; +using Volo.Abp.Threading; namespace Volo.Abp.Identity { @@ -17,6 +18,8 @@ namespace Volo.Abp.Identity )] public class AbpIdentityApplicationContractsModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void ConfigureServices(ServiceConfigurationContext context) { @@ -24,23 +27,24 @@ namespace Volo.Abp.Identity public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToApi( + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( IdentityModuleExtensionConsts.ModuleName, IdentityModuleExtensionConsts.EntityNames.Role, getApiTypes: new[] { typeof(IdentityRoleDto) }, createApiTypes: new[] { typeof(IdentityRoleCreateDto) }, updateApiTypes: new[] { typeof(IdentityRoleUpdateDto) } ); - - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToApi( + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( IdentityModuleExtensionConsts.ModuleName, IdentityModuleExtensionConsts.EntityNames.User, getApiTypes: new[] { typeof(IdentityUserDto) }, createApiTypes: new[] { typeof(IdentityUserCreateDto) }, updateApiTypes: new[] { typeof(IdentityUserUpdateDto) } ); + }); } } -} \ No newline at end of file +} diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs index 5362969011..ce26e91e20 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs @@ -11,6 +11,7 @@ using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.PermissionManagement.Web; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; +using Volo.Abp.Threading; namespace Volo.Abp.Identity.Web { @@ -20,6 +21,8 @@ namespace Volo.Abp.Identity.Web [DependsOn(typeof(AbpAspNetCoreMvcUiThemeSharedModule))] public class AbpIdentityWebModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => @@ -65,21 +68,24 @@ namespace Volo.Abp.Identity.Web public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToUi( - IdentityModuleExtensionConsts.ModuleName, - IdentityModuleExtensionConsts.EntityNames.Role, - createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.CreateModalModel.RoleInfoModel) }, - editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.EditModalModel.RoleInfoModel) } - ); - - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToUi( - IdentityModuleExtensionConsts.ModuleName, - IdentityModuleExtensionConsts.EntityNames.User, - createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel.UserInfoViewModel) }, - editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel.UserInfoViewModel) } - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.Role, + createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.CreateModalModel.RoleInfoModel) }, + editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.EditModalModel.RoleInfoModel) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.User, + createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel.UserInfoViewModel) }, + editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel.UserInfoViewModel) } + ); + }); } } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs index 58b366d645..328c70cc8a 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs @@ -20,6 +20,7 @@ using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.Security; using Volo.Abp.Validation; +using Volo.Abp.Threading; namespace Volo.Abp.IdentityServer { @@ -34,6 +35,8 @@ namespace Volo.Abp.IdentityServer )] public class AbpIdentityServerDomainModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddAutoMapperObjectMapper(); @@ -102,23 +105,26 @@ namespace Volo.Abp.IdentityServer public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - IdentityServerModuleExtensionConsts.ModuleName, - IdentityServerModuleExtensionConsts.EntityNames.Client, - typeof(Client) - ); - - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - IdentityServerModuleExtensionConsts.ModuleName, - IdentityServerModuleExtensionConsts.EntityNames.IdentityResource, - typeof(IdentityResource) - ); - - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - IdentityServerModuleExtensionConsts.ModuleName, - IdentityServerModuleExtensionConsts.EntityNames.ApiResource, - typeof(ApiResource) - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + IdentityServerModuleExtensionConsts.ModuleName, + IdentityServerModuleExtensionConsts.EntityNames.Client, + typeof(Client) + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + IdentityServerModuleExtensionConsts.ModuleName, + IdentityServerModuleExtensionConsts.EntityNames.IdentityResource, + typeof(IdentityResource) + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + IdentityServerModuleExtensionConsts.ModuleName, + IdentityServerModuleExtensionConsts.EntityNames.ApiResource, + typeof(ApiResource) + ); + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs index ea9bc778dd..57ab853253 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs @@ -2,6 +2,7 @@ using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.TenantManagement { @@ -10,16 +11,21 @@ namespace Volo.Abp.TenantManagement typeof(AbpTenantManagementDomainSharedModule))] public class AbpTenantManagementApplicationContractsModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToApi( - TenantManagementModuleExtensionConsts.ModuleName, - TenantManagementModuleExtensionConsts.EntityNames.Tenant, - getApiTypes: new[] { typeof(TenantDto) }, - createApiTypes: new[] { typeof(TenantCreateDto) }, - updateApiTypes: new[] { typeof(TenantUpdateDto) } - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToApi( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + getApiTypes: new[] { typeof(TenantDto) }, + createApiTypes: new[] { typeof(TenantCreateDto) }, + updateApiTypes: new[] { typeof(TenantUpdateDto) } + ); + }); } } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs index 686ca76378..764e9f7209 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs @@ -7,6 +7,7 @@ using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.TenantManagement { @@ -17,6 +18,8 @@ namespace Volo.Abp.TenantManagement [DependsOn(typeof(AbpAutoMapperModule))] public class AbpTenantManagementDomainModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddAutoMapperObjectMapper(); @@ -34,11 +37,14 @@ namespace Volo.Abp.TenantManagement public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( - TenantManagementModuleExtensionConsts.ModuleName, - TenantManagementModuleExtensionConsts.EntityNames.Tenant, - typeof(Tenant) - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + typeof(Tenant) + ); + }); } } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs index c186359b1c..e993ea2c63 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs @@ -11,6 +11,7 @@ using Volo.Abp.TenantManagement.Localization; using Volo.Abp.TenantManagement.Web.Navigation; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; +using Volo.Abp.Threading; namespace Volo.Abp.TenantManagement.Web { @@ -20,6 +21,8 @@ namespace Volo.Abp.TenantManagement.Web [DependsOn(typeof(AbpAutoMapperModule))] public class AbpTenantManagementWebModule : AbpModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => @@ -62,13 +65,16 @@ namespace Volo.Abp.TenantManagement.Web public override void PostConfigureServices(ServiceConfigurationContext context) { - ModuleExtensionConfigurationHelper - .ApplyEntityConfigurationToUi( - TenantManagementModuleExtensionConsts.ModuleName, - TenantManagementModuleExtensionConsts.EntityNames.Tenant, - createFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.CreateModalModel.TenantInfoModel) }, - editFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.EditModalModel.TenantInfoModel) } - ); + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + createFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.CreateModalModel.TenantInfoModel) }, + editFormTypes: new[] { typeof(Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants.EditModalModel.TenantInfoModel) } + ); + }); } } } \ No newline at end of file