From a4c0d64f19fec6823000355f5dee96da566e8088 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 1 Apr 2019 15:12:27 +0300 Subject: [PATCH] Add CurrentTenant.Id to dynamic http client. --- .../Volo.Abp.Http.Client.csproj | 1 + .../Volo/Abp/Http/Client/AbpHttpClientModule.cs | 4 +++- .../DynamicProxying/DynamicHttpProxyInterceptor.cs | 13 ++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj index a93dc4fcb9..f6afd53f1d 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj +++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj @@ -20,6 +20,7 @@ + diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs index f9240bd4a8..234a560e83 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Castle; using Volo.Abp.Modularity; +using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; namespace Volo.Abp.Http.Client @@ -8,7 +9,8 @@ namespace Volo.Abp.Http.Client [DependsOn( typeof(AbpHttpModule), typeof(AbpCastleCoreModule), - typeof(AbpThreadingModule) + typeof(AbpThreadingModule), + typeof(AbpMultiTenancyModule) )] public class AbpHttpClientModule : AbpModule { 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 21f27cce49..936bcd5fd3 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 @@ -16,6 +16,7 @@ using Volo.Abp.Http.Client.Authentication; using Volo.Abp.Http.Modeling; using Volo.Abp.Http.ProxyScripting.Generators; using Volo.Abp.Json; +using Volo.Abp.MultiTenancy; using Volo.Abp.Reflection; using Volo.Abp.Threading; using Volo.Abp.Tracing; @@ -29,6 +30,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying protected ICancellationTokenProvider CancellationTokenProvider { get; } protected ICorrelationIdProvider CorrelationIdProvider { get; } + protected ICurrentTenant CurrentTenant { get; } protected CorrelationIdOptions CorrelationIdOptions { get; } protected IDynamicProxyHttpClientFactory HttpClientFactory { get; } protected IApiDescriptionFinder ApiDescriptionFinder { get; } @@ -55,10 +57,12 @@ namespace Volo.Abp.Http.Client.DynamicProxying IRemoteServiceHttpClientAuthenticator clientAuthenticator, ICancellationTokenProvider cancellationTokenProvider, ICorrelationIdProvider correlationIdProvider, - IOptions correlationIdOptions) + IOptions correlationIdOptions, + ICurrentTenant currentTenant) { CancellationTokenProvider = cancellationTokenProvider; CorrelationIdProvider = correlationIdProvider; + CurrentTenant = currentTenant; CorrelationIdOptions = correlationIdOptions.Value; HttpClientFactory = httpClientFactory; ApiDescriptionFinder = apiDescriptionFinder; @@ -213,6 +217,13 @@ namespace Volo.Abp.Http.Client.DynamicProxying //CorrelationId requestMessage.Headers.Add(CorrelationIdOptions.HttpHeaderName, CorrelationIdProvider.Get()); + //TenantId + if (CurrentTenant.Id.HasValue) + { + //TODO: Use AspNetCoreMultiTenancyOptions to get the key + requestMessage.Headers.Add(TenantResolverConsts.DefaultTenantKey, CurrentTenant.Id.Value.ToString()); + } + //TODO: Is that the way we want? Couldn't send the culture (not ui culture) requestMessage.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue(CultureInfo.CurrentUICulture.Name)); }