diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/Extensibility/BlazorServerLookupApiRequestService.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/Extensibility/BlazorServerLookupApiRequestService.cs index 4d0118f117..952a2d6de4 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/Extensibility/BlazorServerLookupApiRequestService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/Extensibility/BlazorServerLookupApiRequestService.cs @@ -51,7 +51,7 @@ namespace Volo.Abp.AspNetCore.Components.Server.Extensibility try { //Blazor tiered -- mode - var remoteServiceConfig = RemoteServiceConfigurationProvider.GetConfigurationOrDefault("Default"); + var remoteServiceConfig = await RemoteServiceConfigurationProvider.GetConfigurationOrDefaultAsync("Default"); baseUrl = remoteServiceConfig.BaseUrl; client.BaseAddress = new Uri(baseUrl); AddHeaders(requestMessage); 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 index 2d0473b4ea..629a19d9f5 100644 --- 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 @@ -1,12 +1,13 @@ -using Volo.Abp.DependencyInjection; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Components.Web { public class DefaultServerUrlProvider : IServerUrlProvider, ISingletonDependency { - public string GetBaseUrl(string remoteServiceName = null) + public Task GetBaseUrlAsync(string remoteServiceName = null) { - return "/"; + return Task.FromResult("/"); } } } \ 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 index 808dc6c7d3..fffec2f606 100644 --- 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 @@ -1,7 +1,9 @@ -namespace Volo.Abp.AspNetCore.Components.Web +using System.Threading.Tasks; + +namespace Volo.Abp.AspNetCore.Components.Web { public interface IServerUrlProvider { - string GetBaseUrl(string remoteServiceName = null); + Task GetBaseUrlAsync(string remoteServiceName = null); } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Extensibility/WebAssemblyLookupApiRequestService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Extensibility/WebAssemblyLookupApiRequestService.cs index 98a097d4aa..594aa32bae 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Extensibility/WebAssemblyLookupApiRequestService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Extensibility/WebAssemblyLookupApiRequestService.cs @@ -40,7 +40,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.Extensibility var uri = new Uri(url, UriKind.RelativeOrAbsolute); if (!uri.IsAbsoluteUri) { - var remoteServiceConfig = RemoteServiceConfigurationProvider.GetConfigurationOrDefault("Default"); + var remoteServiceConfig = await RemoteServiceConfigurationProvider.GetConfigurationOrDefaultAsync("Default"); client.BaseAddress = new Uri(remoteServiceConfig.BaseUrl); await HttpClientAuthenticator.Authenticate(new RemoteServiceHttpClientAuthenticateContext(client, requestMessage, new RemoteServiceConfiguration(remoteServiceConfig.BaseUrl), string.Empty)); } 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 index c2ac027f91..477dba5418 100644 --- 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 @@ -1,5 +1,5 @@ using System; -using Microsoft.Extensions.Options; +using System.Threading.Tasks; using Volo.Abp.AspNetCore.Components.Web; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Client; @@ -17,11 +17,13 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly RemoteServiceConfigurationProvider = remoteServiceConfigurationProvider; } - public string GetBaseUrl(string remoteServiceName = null) + public async Task GetBaseUrlAsync(string remoteServiceName = null) { - return RemoteServiceConfigurationProvider.GetConfigurationOrDefault( + var remoteServiceConfiguration = await RemoteServiceConfigurationProvider.GetConfigurationOrDefaultAsync( remoteServiceName ?? RemoteServiceConfigurationDictionary.DefaultName - ).BaseUrl.EnsureEndsWith('/'); + ); + + return remoteServiceConfiguration.BaseUrl.EnsureEndsWith('/'); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs index 6a0d607274..7914068bca 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs @@ -135,7 +135,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying private async Task MakeRequestAsync(IAbpMethodInvocation invocation) { var clientConfig = ClientOptions.HttpClientProxies.GetOrDefault(typeof(TService)) ?? throw new AbpException($"Could not get DynamicHttpClientProxyConfig for {typeof(TService).FullName}."); - var remoteServiceConfig = RemoteServiceConfigurationProvider.GetConfigurationOrDefault(clientConfig.RemoteServiceName); + var remoteServiceConfig = await RemoteServiceConfigurationProvider.GetConfigurationOrDefaultAsync(clientConfig.RemoteServiceName); var client = HttpClientFactory.Create(clientConfig.RemoteServiceName); @@ -146,7 +146,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying invocation.Method ); - var apiVersion = GetApiVersionInfo(action); + var apiVersion = await GetApiVersionInfoAsync(action); var url = remoteServiceConfig.BaseUrl.EnsureEndsWith('/') + UrlBuilder.GenerateUrlWithParameters(action, invocation.ArgumentsDictionary, apiVersion); var requestMessage = new HttpRequestMessage(action.GetHttpMethod(), url) @@ -182,9 +182,9 @@ namespace Volo.Abp.Http.Client.DynamicProxying return response.Content; } - private ApiVersionInfo GetApiVersionInfo(ActionApiDescriptionModel action) + private async Task GetApiVersionInfoAsync(ActionApiDescriptionModel action) { - var apiVersion = FindBestApiVersion(action); + var apiVersion = await FindBestApiVersionAsync(action); //TODO: Make names configurable? var versionParam = action.Parameters.FirstOrDefault(p => p.Name == "apiVersion" && p.BindingSourceId == ParameterBindingSources.Path) ?? @@ -193,9 +193,9 @@ namespace Volo.Abp.Http.Client.DynamicProxying return new ApiVersionInfo(versionParam?.BindingSourceId, apiVersion); } - private string FindBestApiVersion(ActionApiDescriptionModel action) + private async Task FindBestApiVersionAsync(ActionApiDescriptionModel action) { - var configuredVersion = GetConfiguredApiVersion(); + var configuredVersion = await GetConfiguredApiVersionAsync(); if (action.SupportedVersions.IsNullOrEmpty()) { @@ -258,13 +258,13 @@ namespace Volo.Abp.Http.Client.DynamicProxying requestMessage.Headers.Add("X-Requested-With", "XMLHttpRequest"); } - private string GetConfiguredApiVersion() + private async Task GetConfiguredApiVersionAsync() { var clientConfig = ClientOptions.HttpClientProxies.GetOrDefault(typeof(TService)) ?? throw new AbpException($"Could not get DynamicHttpClientProxyConfig for {typeof(TService).FullName}."); - return RemoteServiceConfigurationProvider - .GetConfigurationOrDefaultOrNull(clientConfig.RemoteServiceName)?.Version; + return (await RemoteServiceConfigurationProvider + .GetConfigurationOrDefaultOrNullAsync(clientConfig.RemoteServiceName))?.Version; } private async Task ThrowExceptionForResponseAsync(HttpResponseMessage response) diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs index 78f7daf336..b6a2b040f9 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs @@ -1,13 +1,14 @@ -using JetBrains.Annotations; +using System.Threading.Tasks; +using JetBrains.Annotations; namespace Volo.Abp.Http.Client { public interface IRemoteServiceConfigurationProvider { - [NotNull] - RemoteServiceConfiguration GetConfigurationOrDefault(string name); + [ItemNotNull] + Task GetConfigurationOrDefaultAsync(string name); - [CanBeNull] - RemoteServiceConfiguration GetConfigurationOrDefaultOrNull(string name); + [ItemCanBeNull] + Task GetConfigurationOrDefaultOrNullAsync(string name); } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs index fe2a7296d4..c14ea40aa3 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.Options; +using System.Threading.Tasks; +using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; namespace Volo.Abp.Http.Client @@ -11,15 +12,15 @@ namespace Volo.Abp.Http.Client { Options = options.Value; } - - public virtual RemoteServiceConfiguration GetConfigurationOrDefault(string name) + + public Task GetConfigurationOrDefaultAsync(string name) { - return Options.RemoteServices.GetConfigurationOrDefault(name); + return Task.FromResult(Options.RemoteServices.GetConfigurationOrDefault(name)); } - - public virtual RemoteServiceConfiguration GetConfigurationOrDefaultOrNull(string name) + + public Task GetConfigurationOrDefaultOrNullAsync(string name) { - return Options.RemoteServices.GetConfigurationOrDefaultOrNull(name); + return Task.FromResult(Options.RemoteServices.GetConfigurationOrDefaultOrNull(name)); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs index c619e5483c..c5d66f0a49 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs @@ -64,7 +64,10 @@ namespace Volo.Abp.Http.ProxyScripting using (var scope = _serviceProvider.CreateScope()) { - return scope.ServiceProvider.GetRequiredService(generatorType).As().CreateScript(apiModel); + return scope.ServiceProvider + .GetRequiredService(generatorType) + .As() + .CreateScript(apiModel); } }