Browse Source

Register DaprClient to DI

Also, made factory methods sync.
pull/14015/head
Halil İbrahim Kalkan 4 years ago
parent
commit
7ec42e55cc
  1. 8
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs
  2. 7
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs
  3. 4
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs
  4. 4
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs
  5. 2
      framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs
  6. 2
      framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs
  7. 2
      framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs

8
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<DaprClient> CreateAsync(Action<DaprClientBuilder>? builderAction = null)
public virtual DaprClient Create(Action<DaprClientBuilder>? 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<HttpClient> 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()
);
}

7
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<AbpDaprOptions>(configuration.GetSection("Dapr"));
context.Services.TryAddSingleton(
serviceProvider => serviceProvider
.GetRequiredService<IAbpDaprClientFactory>()
.Create()
);
}
}

4
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<string> GetAsync()
public virtual string Get()
{
return Task.FromResult(Options.DaprApiToken);
return Options.DaprApiToken;
}
}

4
framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs

@ -4,9 +4,9 @@ namespace Volo.Abp.Dapr;
public interface IAbpDaprClientFactory
{
Task<DaprClient> CreateAsync(Action<DaprClientBuilder>? builderAction = null);
DaprClient Create(Action<DaprClientBuilder>? builderAction = null);
Task<HttpClient> CreateHttpClientAsync(
HttpClient CreateHttpClient(
string? appId = null,
string? daprEndpoint = null,
string? daprApiToken = null

2
framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs

@ -2,5 +2,5 @@ namespace Volo.Abp.Dapr;
public interface IDaprApiTokenProvider
{
Task<string> GetAsync();
string Get();
}

2
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,

2
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);
}

Loading…
Cancel
Save