Fix db seeding, migration, repository services

This commit is contained in:
danial23 2025-05-19 22:22:33 -04:00
parent 872dc1e263
commit 6b87902ca7
Signed by: danial23
SSH key fingerprint: SHA256:IJ8VP0j2WMUVweTYnzUUnEjNgPnGx+mAt+RhqWZ01bU
22 changed files with 606 additions and 64 deletions

View file

@ -0,0 +1,36 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
namespace CSR.Infrastructure.Persistence
{
public class CSRDbContextFactory : IDesignTimeDbContextFactory<CSRDbContext>
{
public CSRDbContext CreateDbContext(string[] args)
{
// build configuration.
var configuration = new ConfigurationBuilder()
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "..", "CSR.WebUI"))
.AddJsonFile("appsettings.json", optional: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development"}.json", optional: true)
.AddEnvironmentVariables()
.AddKeyPerFile("/run/secrets", optional: true)
.Build();
// get the database path
var dbPath = configuration["Database:Path"];
if (string.IsNullOrEmpty(dbPath))
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
dbPath = Path.Join(path, "csr.db");
}
// create DbContextOptions
var optionsBuilder = new DbContextOptionsBuilder<CSRDbContext>();
optionsBuilder.UseSqlite($"Data Source={dbPath}");
return new CSRDbContext(optionsBuilder.Options);
}
}
}