Removed old architecture. Added new base project structure

This commit is contained in:
Masu-Baumgartner
2024-09-30 17:52:14 +02:00
parent c05ea18513
commit 73bf27d222
819 changed files with 6257 additions and 56097 deletions

View File

@@ -0,0 +1,11 @@
using MoonCore.Services;
using Moonlight.ApiServer.Configuration;
namespace Moonlight.ApiServer.Helpers;
public class ApplicationStateHelper
{
public static ConfigService<AppConfiguration>? Configuration { get; private set; }
public static void SetConfiguration(ConfigService<AppConfiguration>? configuration) => Configuration = configuration;
}

View File

@@ -0,0 +1,8 @@
using System.Security.Claims;
namespace Moonlight.ApiServer.Helpers.Authentication;
public class SyncedClaimsPrinciple : ClaimsPrincipal
{
}

View File

@@ -0,0 +1,59 @@
using Microsoft.EntityFrameworkCore;
using MoonCore.Helpers;
using MoonCore.Services;
using Moonlight.ApiServer.Configuration;
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
namespace Moonlight.ApiServer.Helpers;
public abstract class DatabaseContext : DbContext
{
private ConfigService<AppConfiguration>? ConfigService;
public abstract string Prefix { get; }
public DatabaseContext()
{
ConfigService = ApplicationStateHelper.Configuration;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (optionsBuilder.IsConfigured)
return;
// If no config service has been configured, we are probably
// in a EF Core migration, so we need to construct the config manually
if (ConfigService == null)
{
ConfigService = new ConfigService<AppConfiguration>(
PathBuilder.File("storage", "config.json")
);
}
var config = ConfigService.Get().Database;
var connectionString = $"host={config.Host};" +
$"port={config.Port};" +
$"database={config.Database};" +
$"uid={config.Username};" +
$"pwd={config.Password}";
optionsBuilder.UseMySql(
connectionString,
ServerVersion.AutoDetect(connectionString),
builder =>
{
builder.EnableRetryOnFailure(5);
builder.SchemaBehavior(MySqlSchemaBehavior.Translate, (name, objectName) => $"{name}_{objectName}");
builder.MigrationsHistoryTable($"{Prefix}_MigrationHistory");
}
);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Model.SetDefaultSchema(Prefix);
base.OnModelCreating(modelBuilder);
}
}