101 lines
3.5 KiB
C#
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};";
|
|
}
|
|
}
|
|
}
|