From 690851847bd239b582a21e2bd15d93fb104d2b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 16 Mar 2021 22:00:42 +0300 Subject: [PATCH] Added IServerUrlProvider. --- .../Web/AbpAspNetCoreComponentsWebModule.cs | 4 --- .../Web/DefaultServerUrlProvider.cs | 12 +++++++++ .../Components/Web/IServerUrlProvider.cs | 7 +++++ ...tCoreComponentsWebAssemblyThemingModule.cs | 3 ++- ...Core.Components.WebAssembly.Theming.csproj | 1 + ...p.AspNetCore.Components.WebAssembly.csproj | 1 - ...bpAspNetCoreComponentsWebAssemblyModule.cs | 2 +- .../WebAssemblyServerUrlProvider.cs | 27 +++++++++++++++++++ 8 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/DefaultServerUrlProvider.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/IServerUrlProvider.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyServerUrlProvider.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs index c4185e8c46..ddcd839e3d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs @@ -21,10 +21,6 @@ namespace Volo.Abp.AspNetCore.Components.Web public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.Replace(ServiceDescriptor.Transient()); - - //context.Services - // .GetHostBuilder().Logging - // .AddProvider(new AbpExceptionHandlingLoggerProvider(context.Services)); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/DefaultServerUrlProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/DefaultServerUrlProvider.cs new file mode 100644 index 0000000000..2d0473b4ea --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/DefaultServerUrlProvider.cs @@ -0,0 +1,12 @@ +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.Web +{ + public class DefaultServerUrlProvider : IServerUrlProvider, ISingletonDependency + { + public string GetBaseUrl(string remoteServiceName = null) + { + return "/"; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/IServerUrlProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/IServerUrlProvider.cs new file mode 100644 index 0000000000..808dc6c7d3 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/IServerUrlProvider.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.AspNetCore.Components.Web +{ + public interface IServerUrlProvider + { + string GetBaseUrl(string remoteServiceName = null); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/AbpAspNetCoreComponentsWebAssemblyThemingModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/AbpAspNetCoreComponentsWebAssemblyThemingModule.cs index 9a7fcbf18e..a19df06bc7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/AbpAspNetCoreComponentsWebAssemblyThemingModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/AbpAspNetCoreComponentsWebAssemblyThemingModule.cs @@ -4,7 +4,8 @@ using Volo.Abp.Modularity; namespace Volo.Abp.AspNetCore.Components.WebAssembly.Theming { [DependsOn( - typeof(AbpAspNetCoreComponentsWebThemingModule) + typeof(AbpAspNetCoreComponentsWebThemingModule), + typeof(AbpAspNetCoreComponentsWebAssemblyModule) )] public class AbpAspNetCoreComponentsWebAssemblyThemingModule : AbpModule { diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj index 51b9afbb4f..9b8b900d29 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj @@ -9,6 +9,7 @@ + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj index 1a8cfd6bdd..54567a6266 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj @@ -18,7 +18,6 @@ - diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs index a62c74fbc8..2a4abea950 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly [DependsOn( typeof(AbpAspNetCoreMvcClientCommonModule), typeof(AbpUiModule), - typeof(AbpAspNetCoreComponentsModule) + typeof(AbpAspNetCoreComponentsWebModule) )] public class AbpAspNetCoreComponentsWebAssemblyModule : AbpModule { diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyServerUrlProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyServerUrlProvider.cs new file mode 100644 index 0000000000..865871b5a5 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyServerUrlProvider.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Components.Web; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + [Dependency(ReplaceServices = true)] + public class WebAssemblyServerUrlProvider : IServerUrlProvider, ITransientDependency + { + public AbpRemoteServiceOptions Options { get; } + + public WebAssemblyServerUrlProvider( + IOptions options) + { + Options = options.Value; + } + + public string GetBaseUrl(string remoteServiceName = null) + { + return Options.RemoteServices.GetConfigurationOrDefault( + remoteServiceName ?? RemoteServiceConfigurationDictionary.DefaultName + ).BaseUrl.EnsureEndsWith('/'); + } + } +} \ No newline at end of file