From 54d37276016e170a1ae269c3e6f7c15f468f4e4b Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 26 Jan 2022 12:54:14 +0800 Subject: [PATCH 1/3] Enhance AbpHttpClientProxyServiceConvention --- .../AbpHttpClientProxyServiceConvention.cs | 13 +++++++++++++ .../MyCompanyName.MyProjectName.Web.Host.csproj | 1 + .../MyProjectNameWebModule.cs | 2 ++ 3 files changed, 16 insertions(+) diff --git a/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs index cd5f98b6d6..29ea577ef6 100644 --- a/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs +++ b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs @@ -51,6 +51,12 @@ public class AbpHttpClientProxyServiceConvention : AbpServiceConvention foreach (var controller in GetClientProxyControllers(application)) { + if (ShouldBeRemove(application, controller)) + { + application.Controllers.Remove(controller); + continue; + } + controller.ControllerName = controller.ControllerName.RemovePostFix("ClientProxy"); var controllerApiDescription = FindControllerApiDescriptionModel(controller); @@ -66,6 +72,13 @@ public class AbpHttpClientProxyServiceConvention : AbpServiceConvention } } + protected virtual bool ShouldBeRemove(ApplicationModel application, ControllerModel controllerModel) + { + return application.Controllers + .Where(x => x.ControllerType != controllerModel.ControllerType).ToList() + .Any(x => FindAppServiceInterfaceType(x) == FindAppServiceInterfaceType(controllerModel)); + } + protected virtual void ConfigureClientProxySelector(ControllerModel controller) { RemoveEmptySelectors(controller.Selectors); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index c90a667f14..6eb25ae27f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -25,6 +25,7 @@ + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 5aadf42750..368ad5eafe 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -29,6 +29,7 @@ using Volo.Abp.AutoMapper; using Volo.Abp.Caching; using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp.Http.Client.IdentityModel.Web; +using Volo.Abp.Http.Client.Web; using Volo.Abp.Identity.Web; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; @@ -48,6 +49,7 @@ namespace MyCompanyName.MyProjectName.Web; typeof(MyProjectNameHttpApiModule), typeof(AbpAspNetCoreAuthenticationOpenIdConnectModule), typeof(AbpAspNetCoreMvcClientModule), + typeof(AbpHttpClientWebModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAutofacModule), typeof(AbpCachingStackExchangeRedisModule), From d6369bf9ce158f36155a77edb0d4a7487922ff4d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 26 Jan 2022 13:13:41 +0800 Subject: [PATCH 2/3] Update module template --- .../MyCompanyName.MyProjectName.Web.Host.csproj | 1 + .../MyProjectNameWebHostModule.cs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 29ab15443c..0abdf69927 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -19,6 +19,7 @@ + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index 96aaa92102..fc15536994 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -36,6 +36,7 @@ using Volo.Abp.FeatureManagement; using Volo.Abp.Http.Client.IdentityModel.Web; using Volo.Abp.Identity; using Volo.Abp.Identity.Web; +using Volo.Abp.Http.Client.Web; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement; @@ -57,6 +58,7 @@ namespace MyCompanyName.MyProjectName; typeof(MyProjectNameHttpApiModule), typeof(AbpAspNetCoreAuthenticationOpenIdConnectModule), typeof(AbpAspNetCoreMvcClientModule), + typeof(AbpHttpClientWebModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAutofacModule), typeof(AbpCachingStackExchangeRedisModule), From 8eceffa25e15266a5c178ab5603ae7e6f4d9c7a2 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 26 Jan 2022 13:15:31 +0800 Subject: [PATCH 3/3] Update AbpHttpClientProxyServiceConvention --- .../Web/Conventions/AbpHttpClientProxyServiceConvention.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs index 29ea577ef6..2cbe02c95e 100644 --- a/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs +++ b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs @@ -75,7 +75,7 @@ public class AbpHttpClientProxyServiceConvention : AbpServiceConvention protected virtual bool ShouldBeRemove(ApplicationModel application, ControllerModel controllerModel) { return application.Controllers - .Where(x => x.ControllerType != controllerModel.ControllerType).ToList() + .Where(x => x.ControllerType != controllerModel.ControllerType) .Any(x => FindAppServiceInterfaceType(x) == FindAppServiceInterfaceType(controllerModel)); }