committed by
GitHub
5 changed files with 88 additions and 98 deletions
@ -0,0 +1,72 @@ |
|||||
|
using Microsoft.Extensions.Configuration; |
||||
|
|
||||
|
namespace Microsoft.Extensions.Hosting; |
||||
|
|
||||
|
public static class ConfigurationExtensions |
||||
|
{ |
||||
|
public static TBuilder MapDefaultConfiguration<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder |
||||
|
{ |
||||
|
builder.AddRedisClient("redis"); |
||||
|
builder.AddRabbitMQClient("rabbitmq"); |
||||
|
builder.AddElasticsearchClient("elasticsearch"); |
||||
|
|
||||
|
// CAP PostgreSql
|
||||
|
builder.Configuration["CAP:PostgreSql:ConnectionString"] = builder.Configuration.GetConnectionString("Default"); |
||||
|
|
||||
|
// CAP RabbitMQ
|
||||
|
builder.Configuration["CAP:RabbitMQ:HostName"] = builder.Configuration["RABBITMQ_HOST"]; |
||||
|
builder.Configuration["CAP:RabbitMQ:UserName"] = builder.Configuration["RABBITMQ_USERNAME"]; |
||||
|
builder.Configuration["CAP:RabbitMQ:Password"] = builder.Configuration["RABBITMQ_PASSWORD"]; |
||||
|
builder.Configuration["CAP:RabbitMQ:Port"] = builder.Configuration["RABBITMQ_PORT"]; |
||||
|
|
||||
|
// Abp RabbitMQ
|
||||
|
builder.Configuration["RabbitMQ:Default:HostName"] = builder.Configuration["RABBITMQ_HOST"]; |
||||
|
builder.Configuration["RabbitMQ:Default:UserName"] = builder.Configuration["RABBITMQ_USERNAME"]; |
||||
|
builder.Configuration["RabbitMQ:Default:Password"] = builder.Configuration["RABBITMQ_PASSWORD"]; |
||||
|
builder.Configuration["RabbitMQ:Default:Port"] = builder.Configuration["RABBITMQ_PORT"]; |
||||
|
|
||||
|
// Elsa RabbitMQ
|
||||
|
builder.Configuration["Elsa:Rebus:RabbitMQ:Connection"] = builder.Configuration.GetConnectionString("RabbitMQ"); |
||||
|
|
||||
|
// Redis
|
||||
|
var redisConnectionString = builder.Configuration.GetConnectionString("Redis"); |
||||
|
builder.Configuration["Redis:Configuration"] = $"{redisConnectionString},defaultDatabase=10"; |
||||
|
|
||||
|
// DistributedLock
|
||||
|
builder.Configuration["DistributedLock:Redis:Configuration"] = $"{redisConnectionString},defaultDatabase=11"; |
||||
|
|
||||
|
// Features
|
||||
|
builder.Configuration["Features:Validation:Redis:Configuration"] = $"{redisConnectionString},defaultDatabase=12"; |
||||
|
|
||||
|
// SignalR
|
||||
|
builder.Configuration["SignalR:Redis:Configuration"] = $"{redisConnectionString},defaultDatabase=13,channelPrefix=abp-realtime-channel"; |
||||
|
|
||||
|
// Elasticsearch
|
||||
|
var elasticSearchUrl = builder.Configuration.GetConnectionString("Elasticsearch"); |
||||
|
var serialogEsConfig = builder.Configuration.GetSection("Serilog:WriteTo"); |
||||
|
|
||||
|
void ReplaceElasticsearchLogging(IConfiguration configuration) |
||||
|
{ |
||||
|
foreach (var config in configuration.GetChildren()) |
||||
|
{ |
||||
|
if (string.Equals(config["Name"], "Async", StringComparison.InvariantCultureIgnoreCase)) |
||||
|
{ |
||||
|
var configureArgs = config.GetSection("Args:configure"); |
||||
|
ReplaceElasticsearchLogging(configureArgs); |
||||
|
} |
||||
|
if (string.Equals(config["Name"], "Elasticsearch", StringComparison.InvariantCultureIgnoreCase)) |
||||
|
{ |
||||
|
config["Args:nodeUris"] = elasticSearchUrl; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (serialogEsConfig.Exists()) |
||||
|
{ |
||||
|
ReplaceElasticsearchLogging(serialogEsConfig); |
||||
|
} |
||||
|
builder.Configuration["Elasticsearch:NodeUris"] = elasticSearchUrl; |
||||
|
|
||||
|
return builder; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue