Basic (and probably pretty inefficient) implementation of the ENV Vars in the Asp.Net App

This commit is contained in:
Niggl1999 2020-06-04 10:01:54 +02:00
parent 5badaa819a
commit 6b6bb00296
1 changed files with 33 additions and 9 deletions

View File

@ -25,14 +25,7 @@ namespace ScrumTaskboard
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Get all the env vars for the DB connection
string dbHost = Environment.GetEnvironmentVariable("DATABASE_HOST");
string dbPort = Environment.GetEnvironmentVariable("DATABASE_PORT");
string dbName = Environment.GetEnvironmentVariable("DATABASE_NAME");
string dbUser = Environment.GetEnvironmentVariable("DATABASE_USER");
string dbPassword = Environment.GetEnvironmentVariable("DATABASE_PASSWORD");
{
services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{
builder.AllowAnyOrigin()
@ -41,7 +34,7 @@ namespace ScrumTaskboard
}));
services.AddScoped(serviceProvider => new TaskContext(
new DbContextOptionsBuilder<TaskContext>()
.UseNpgsql($"Host={dbHost}; Port={dbPort}; Username={dbUser}; Database={dbName}; Password={dbPassword}")
.UseNpgsql(GetConnectionString())
.Options));
services.AddControllers();
}
@ -72,5 +65,36 @@ namespace ScrumTaskboard
endpoints.MapControllers();
});
}
/// <summary>
/// Creates DB Connection String based on ENV vars and default vars.
/// </summary>
/// <returns></returns>
public string GetConnectionString()
{
string dbHost;
string dbPort;
string dbName;
string dbUser;
string dbPassword;
try {
dbHost = Environment.GetEnvironmentVariable("DATABASE_HOST");
dbPort = Environment.GetEnvironmentVariable("DATABASE_PORT");
dbName = Environment.GetEnvironmentVariable("DATABASE_NAME");
dbUser = Environment.GetEnvironmentVariable("DATABASE_USER");
dbPassword = Environment.GetEnvironmentVariable("DATABASE_PASSWORD");
}
catch {
dbHost = "nig.gl";
dbPort = "8543";
dbName = "taskboard";
dbUser = "scrum";
dbPassword = "c6gXud7YvBWp2sgxSgy4wRN";
}
return $"Host={dbHost}; Port={dbPort}; Username={dbUser}; Database={dbName}; Password={dbPassword}";
}
}
}