mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 02:39:03 +00:00
update seed application
This commit is contained in:
@@ -4,6 +4,7 @@ using System.Text;
|
||||
using Konscious.Security.Cryptography;
|
||||
using Microsoft.Data.SqlClient;
|
||||
|
||||
|
||||
string ConnectionString = Environment.GetEnvironmentVariable(
|
||||
"DB_CONNECTION_STRING"
|
||||
)!;
|
||||
@@ -17,14 +18,15 @@ static async Task BuildSchema(SqlConnection connection)
|
||||
|
||||
static async Task AddStoredProcsAndFunctions(SqlConnection connection)
|
||||
{
|
||||
// New approach: load functions first, then procedures, from dedicated folders.
|
||||
// Fallback to legacy combined file if folders are missing.
|
||||
string projectRoot = Path.GetFullPath(
|
||||
Path.Combine(AppContext.BaseDirectory, "..", "..", "..")
|
||||
);
|
||||
|
||||
string functionsDir = Path.Combine(projectRoot, "seed", "functions");
|
||||
string proceduresDir = Path.Combine(projectRoot, "seed", "procedures");
|
||||
string crudDir = Path.GetFullPath(
|
||||
Path.Combine(projectRoot, "..", "DataAccessLayer", "Sql", "crud")
|
||||
);
|
||||
|
||||
if (Directory.Exists(functionsDir))
|
||||
{
|
||||
@@ -66,6 +68,26 @@ static async Task AddStoredProcsAndFunctions(SqlConnection connection)
|
||||
}
|
||||
}
|
||||
|
||||
if (Directory.Exists(crudDir))
|
||||
{
|
||||
foreach (
|
||||
string file in Directory
|
||||
.EnumerateFiles(
|
||||
crudDir,
|
||||
"*.sql",
|
||||
SearchOption.TopDirectoryOnly
|
||||
)
|
||||
.OrderBy(f => f, StringComparer.OrdinalIgnoreCase)
|
||||
)
|
||||
{
|
||||
string sql = await File.ReadAllTextAsync(file);
|
||||
await ExecuteScriptAsync(connection, sql);
|
||||
Console.WriteLine(
|
||||
$"Executed CRUD script: {Path.GetFileName(file)}"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine(
|
||||
"Functions and stored procedures added or updated successfully."
|
||||
);
|
||||
|
||||
@@ -1,37 +1,5 @@
|
||||
// Load a local .env file into environment variables when present (useful for local development)
|
||||
try
|
||||
{
|
||||
var envPath = Path.Combine(Directory.GetCurrentDirectory(), ".env");
|
||||
if (File.Exists(envPath))
|
||||
{
|
||||
foreach (var line in File.ReadAllLines(envPath))
|
||||
{
|
||||
var trimmed = line.Trim();
|
||||
if (string.IsNullOrEmpty(trimmed) || trimmed.StartsWith("#"))
|
||||
continue;
|
||||
var idx = trimmed.IndexOf('=');
|
||||
if (idx <= 0)
|
||||
continue;
|
||||
var key = trimmed.Substring(0, idx).Trim();
|
||||
var val = trimmed.Substring(idx + 1).Trim();
|
||||
if (val.Length >= 2 && ((val.StartsWith("\"") && val.EndsWith("\"")) || (val.StartsWith("'") && val.EndsWith("'"))))
|
||||
{
|
||||
val = val.Substring(1, val.Length - 2);
|
||||
}
|
||||
if (Environment.GetEnvironmentVariable(key) == null)
|
||||
Environment.SetEnvironmentVariable(key, val);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// If dotenv loading fails, continue without blocking startup.
|
||||
}
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Add services to the container.
|
||||
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
|
||||
builder.Services.AddControllers();
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen();
|
||||
@@ -39,7 +7,6 @@ builder.Services.AddOpenApi();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseSwagger();
|
||||
@@ -48,21 +15,6 @@ if (app.Environment.IsDevelopment())
|
||||
}
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
|
||||
var summaries = new[]
|
||||
{
|
||||
"Freezing",
|
||||
"Bracing",
|
||||
"Chilly",
|
||||
"Cool",
|
||||
"Mild",
|
||||
"Warm",
|
||||
"Balmy",
|
||||
"Hot",
|
||||
"Sweltering",
|
||||
"Scorching",
|
||||
};
|
||||
|
||||
app.MapControllers();
|
||||
app.Run();
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ services:
|
||||
environment:
|
||||
ACCEPT_EULA: "Y"
|
||||
SA_PASSWORD: "${SA_PASSWORD}"
|
||||
ports:
|
||||
- "1433:1433"
|
||||
volumes:
|
||||
- sqlserverdata:/var/opt/mssql
|
||||
healthcheck:
|
||||
@@ -17,6 +19,7 @@ services:
|
||||
retries: 12
|
||||
networks:
|
||||
- devnet
|
||||
|
||||
volumes:
|
||||
sqlserverdata:
|
||||
nuget-cache:
|
||||
|
||||
Reference in New Issue
Block a user