Files
BuYuHouDuan/Infrastructure/SharpAbp.Infrastructure.Api/Configuration/ConfigurationHelper.cs
T
2026-10-12 16:22:04 +08:00

101 lines
3.5 KiB
C#

namespace SharpAbp.Infrastructure.Api.Configuration
{
public static class ConfigurationHelper
{
public static string GetString(string key, string defaultValue = null)
{
var envValue = Environment.GetEnvironmentVariable(key);
if (!string.IsNullOrEmpty(envValue))
{
return envValue;
}
return defaultValue;
}
public static int GetInt(string key, int defaultValue = 0)
{
var envValue = Environment.GetEnvironmentVariable(key);
if (int.TryParse(envValue, out var result))
{
return result;
}
return defaultValue;
}
public static bool GetBool(string key, bool defaultValue = false)
{
var envValue = Environment.GetEnvironmentVariable(key);
if (bool.TryParse(envValue, out var result))
{
return result;
}
return defaultValue;
}
public static string GetConnectionString(string type)
{
return type.ToLower() switch
{
"mongodb" => GetMongoDBConnectionString(),
"redis" => GetRedisConnectionString(),
"rabbitmq" => GetRabbitMQConnectionString(),
"mysql" => GetMySQLConnectionString(),
_ => throw new ArgumentException($"Unknown connection type: {type}")
};
}
private static string GetMongoDBConnectionString()
{
var host = GetString("MONGODB_HOST", "localhost");
var port = GetString("MONGODB_PORT", "27017");
var user = GetString("MONGODB_USER", "");
var password = GetString("MONGODB_PASSWORD", "");
var database = GetString("MONGODB_DATABASE", "data_0524");
if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(password))
{
return $"mongodb://{user}:{password}@{host}:{port}/{database}";
}
return $"mongodb://{host}:{port}/{database}";
}
private static string GetRedisConnectionString()
{
var host = GetString("REDIS_HOST", "localhost");
var port = GetString("REDIS_PORT", "6379");
var password = GetString("REDIS_PASSWORD", "");
var database = GetString("REDIS_DB", "0");
var connectionString = $"{host}:{port}";
if (!string.IsNullOrEmpty(password))
{
connectionString += $",password={password}";
}
connectionString += $",defaultDatabase={database}";
return connectionString;
}
private static string GetRabbitMQConnectionString()
{
var host = GetString("RABBITMQ_HOST", "localhost");
var port = GetString("RABBITMQ_PORT", "5672");
var user = GetString("RABBITMQ_USER", "guest");
var password = GetString("RABBITMQ_PASSWORD", "guest");
return $"amqp://{user}:{password}@{host}:{port}";
}
private static string GetMySQLConnectionString()
{
var host = GetString("MYSQL_HOST", "localhost");
var port = GetString("MYSQL_PORT", "3306");
var user = GetString("MYSQL_USER", "root");
var password = GetString("MYSQL_PASSWORD", "");
var database = GetString("MYSQL_DATABASE", "data_0524");
return $"Server={host};Port={port};Database={database};User={user};Password={password};";
}
}
}