using System; using System.IO; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using TournamentOrganizer.Models; namespace TournamentOrganizer; public class TournamentContext : DbContext { public DbSet Events { get; set; } public DbSet Games { get; set; } public DbSet Matches { get; set; } public DbSet TeamParticipants { get; set; } public DbSet PlayerParticipants { get; set; } public DbSet Players { get; set; } public DbSet Rounds { get; set; } public DbSet Teams { get; set; } public DbSet Tournaments { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { string datadir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "TournamentOrganizer"); Directory.CreateDirectory(datadir); string dbfile = Path.Combine(datadir, "sqlite.db"); optionsBuilder.UseSqlite(new SqliteConnectionStringBuilder() { DataSource = dbfile, Mode = SqliteOpenMode.ReadWriteCreate, ForeignKeys = true, RecursiveTriggers = true }.ToString()); } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); } }