using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Options; using Moonlight.Api.Configuration; using MoonlightServers.Api.Infrastructure.Database.Entities; namespace MoonlightServers.Api.Infrastructure.Database; public class DataContext : DbContext { public DbSet Nodes { get; set; } private readonly IOptions Options; public DataContext(IOptions options) { Options = options; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (optionsBuilder.IsConfigured) return; optionsBuilder.UseNpgsql( $"Host={Options.Value.Host};" + $"Port={Options.Value.Port};" + $"Username={Options.Value.Username};" + $"Password={Options.Value.Password};" + $"Database={Options.Value.Database}" ); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasDefaultSchema("servers"); base.OnModelCreating(modelBuilder); } }