fixes and tweaks

This commit is contained in:
moarten
2026-04-29 20:36:08 +02:00
parent b71f45e76c
commit 385119bb27
58 changed files with 1512 additions and 350 deletions
+32 -2
View File
@@ -15,22 +15,33 @@ public class LutraDbContext : DbContext, ILutraDbContext
public DbSet<Beoordeling> Beoordelingen => Set<Beoordeling>();
public DbSet<VerspakketFoto> VerspakketFotos => Set<VerspakketFoto>();
public DbSet<Verspakket> Verspaketten => Set<Verspakket>();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Beoordeling>()
.ToTable("Beoordelingen");
// Global soft-delete filter: exclude logically deleted entities from all queries.
modelBuilder.Entity<Beoordeling>().HasQueryFilter(b => !b.IsDeleted);
modelBuilder.Entity<VerspakketFoto>().HasQueryFilter(f => !f.IsDeleted);
modelBuilder.Entity<Supermarkt>().HasQueryFilter(s => !s.IsDeleted);
modelBuilder.Entity<Verspakket>(b =>
{
b.HasQueryFilter(v => !v.IsDeleted);
b.HasMany(v => v.Beoordelingen)
.WithOne()
.HasForeignKey(beo => beo.VerspakketId)
.IsRequired();
b.HasMany(v => v.Fotos)
.WithOne()
.HasForeignKey(foto => foto.VerspakketId)
.IsRequired();
b.ToTable(t =>
{
t.HasCheckConstraint("CK_Verspaketten_AantalPersonen", "\"AantalPersonen\" BETWEEN 1 AND 10");
@@ -39,8 +50,27 @@ public class LutraDbContext : DbContext, ILutraDbContext
});
}
/// <summary>
/// Populates audit fields on tracked entities before persisting.
/// </summary>
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
{
var now = DateTime.UtcNow;
foreach (var entry in ChangeTracker.Entries<BaseEntity>())
{
switch (entry.State)
{
case EntityState.Added:
entry.Entity.CreatedAt = now;
entry.Entity.ModifiedAt = now;
break;
case EntityState.Modified:
entry.Entity.ModifiedAt = now;
break;
}
}
return base.SaveChangesAsync(cancellationToken);
}
}