From 0d661c09e41605afd78413e394e87eda73083956 Mon Sep 17 00:00:00 2001 From: Kevin Matsubara Date: Tue, 15 Apr 2025 23:26:55 +0200 Subject: [PATCH] Add ServerManagementContext with connectionstring. --- .../Data/ServerManagementContext.cs | 31 +++++++++++++++++++ ServerManagement/Program.cs | 11 +++++++ ServerManagement/appsettings.json | 3 ++ 3 files changed, 45 insertions(+) create mode 100644 ServerManagement/Data/ServerManagementContext.cs diff --git a/ServerManagement/Data/ServerManagementContext.cs b/ServerManagement/Data/ServerManagementContext.cs new file mode 100644 index 0000000..3dbf5cc --- /dev/null +++ b/ServerManagement/Data/ServerManagementContext.cs @@ -0,0 +1,31 @@ +using Microsoft.EntityFrameworkCore; +using ServerManagement.Models; + +namespace ServerManagement.Data; + +public class ServerManagementContext : DbContext +{ + public DbSet Servers { get; set; } + + public ServerManagementContext(DbContextOptions options): base(options) { } + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity().HasData( + new Server { Id = 1, Name = "Server1", City = "Eindhoven", IsOnline = true}, + new Server { Id = 2, Name = "Server2", City = "Eindhoven", IsOnline = true }, + new Server { Id = 3, Name = "Server3", City = "Eindhoven", IsOnline = false }, + new Server { Id = 4, Name = "Server4", City = "Eindhoven", IsOnline = true }, + new Server { Id = 5, Name = "Server5", City = "Helmond", IsOnline = true }, + new Server { Id = 6, Name = "Server6", City = "Helmond", IsOnline = false }, + new Server { Id = 7, Name = "Server7", City = "Helmond", IsOnline = true }, + new Server { Id = 8, Name = "Server8", City = "Oosterhout", IsOnline = true }, + new Server { Id = 9, Name = "Server9", City = "Oosterhout", IsOnline = true }, + new Server { Id = 10, Name = "Server10", City = "Roosendaal", IsOnline = false }, + new Server { Id = 11, Name = "Server11", City = "Roosendaal", IsOnline = false }, + new Server { Id = 12, Name = "Server12", City = "Deurne", IsOnline = false }, + new Server { Id = 13, Name = "Server13", City = "Deurne", IsOnline = true } + ); + } +} diff --git a/ServerManagement/Program.cs b/ServerManagement/Program.cs index 6181260..179d2c8 100644 --- a/ServerManagement/Program.cs +++ b/ServerManagement/Program.cs @@ -1,9 +1,20 @@ +using Microsoft.EntityFrameworkCore; using ServerManagement.Components; +using ServerManagement.Data; using ServerManagement.StateStore; var builder = WebApplication.CreateBuilder(args); // Add services to the container. +// Do not use this, it can cause non-thread-safe complications, due to its Scoped lifetime. +// builder.Services.AddDbContext(); +// Instead, use factory: +builder.Services.AddDbContextFactory( + options => { + options.UseSqlite(builder.Configuration.GetConnectionString("ServerManagement")); + } +); + builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); // Provides server interactivity. diff --git a/ServerManagement/appsettings.json b/ServerManagement/appsettings.json index 10f68b8..9168a4e 100644 --- a/ServerManagement/appsettings.json +++ b/ServerManagement/appsettings.json @@ -1,4 +1,7 @@ { + "ConnectionStrings": { + "ServerManagement": "Data Source=./Data/database.db" + }, "Logging": { "LogLevel": { "Default": "Information",