From 7ec42e55cc33a817f13ee29db98d05f2854ecdae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 15 Sep 2022 08:58:54 +0300 Subject: [PATCH] Register DaprClient to DI Also, made factory methods sync. --- .../Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs | 8 ++++---- .../src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs | 7 +++++++ .../Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs | 4 ++-- .../Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs | 4 ++-- .../Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs | 2 +- .../Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs | 2 +- .../Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs | 2 +- 7 files changed, 18 insertions(+), 11 deletions(-) diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs index 4f6fde67b4..255ff1b517 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs @@ -22,7 +22,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency JsonSerializerOptions = CreateJsonSerializerOptions(systemTextJsonSerializerOptions.Value); } - public virtual async Task CreateAsync(Action? builderAction = null) + public virtual DaprClient Create(Action? builderAction = null) { var builder = new DaprClientBuilder() .UseJsonSerializationOptions(JsonSerializerOptions); @@ -37,7 +37,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency builder.UseGrpcEndpoint(DaprOptions.GrpcEndpoint); } - var apiToken = await DaprApiTokenProvider.GetAsync(); + var apiToken = DaprApiTokenProvider.Get(); if (!apiToken.IsNullOrWhiteSpace()) { builder.UseDaprApiToken(apiToken); @@ -48,7 +48,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency return builder.Build(); } - public virtual async Task CreateHttpClientAsync( + public virtual HttpClient CreateHttpClient( string? appId = null, string? daprEndpoint = null, string? daprApiToken = null) @@ -62,7 +62,7 @@ public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency return DaprClient.CreateInvokeHttpClient( appId, daprEndpoint, - daprApiToken ?? await DaprApiTokenProvider.GetAsync() + daprApiToken ?? DaprApiTokenProvider.Get() ); } diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs index 43d6d11033..f4210ea104 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.Json; using Volo.Abp.Modularity; @@ -11,5 +12,11 @@ public class AbpDaprModule : AbpModule { var configuration = context.Services.GetConfiguration(); Configure(configuration.GetSection("Dapr")); + + context.Services.TryAddSingleton( + serviceProvider => serviceProvider + .GetRequiredService() + .Create() + ); } } diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs index 8f0cd104b0..88f53da220 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs @@ -12,8 +12,8 @@ public class DaprApiTokenProvider : IDaprApiTokenProvider, ISingletonDependency Options = options.Value; } - public virtual Task GetAsync() + public virtual string Get() { - return Task.FromResult(Options.DaprApiToken); + return Options.DaprApiToken; } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs index cd2916ae5a..fc50a07d41 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs @@ -4,9 +4,9 @@ namespace Volo.Abp.Dapr; public interface IAbpDaprClientFactory { - Task CreateAsync(Action? builderAction = null); + DaprClient Create(Action? builderAction = null); - Task CreateHttpClientAsync( + HttpClient CreateHttpClient( string? appId = null, string? daprEndpoint = null, string? daprApiToken = null diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs index e122d3c201..f08e5d4853 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs @@ -2,5 +2,5 @@ namespace Volo.Abp.Dapr; public interface IDaprApiTokenProvider { - Task GetAsync(); + string Get(); } \ No newline at end of file diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs index 3b4a878456..d055376fb8 100644 --- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs +++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs @@ -33,7 +33,7 @@ public class DaprAbpDistributedLock : IAbpDistributedLock, ITransientDependency name = DistributedLockKeyNormalizer.NormalizeKey(name); - var daprClient = await DaprClientFactory.CreateAsync(); + var daprClient = DaprClientFactory.Create(); var lockResponse = await daprClient.Lock( DistributedLockDaprOptions.StoreName, name, diff --git a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs index 19ff820877..c8d47f6887 100644 --- a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs @@ -197,7 +197,7 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend protected virtual async Task PublishToDaprAsync(string eventName, object eventData) { - var client = await DaprClientFactory.CreateAsync(); + var client = DaprClientFactory.Create(); await client.PublishEventAsync(pubsubName: DaprEventBusOptions.PubSubName, topicName: eventName, data: eventData); }