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",