public static void UpdateTimestamp(this Infrastructure.DB.NotSteamContext context) { var entries = context.ChangeTracker.Entries(); foreach (var entry in entries.Where(entry => entry.Entity is ITimestamp).Select(entry => entry)) { var entity = (ITimestamp)entry.Entity; var now = DateTime.UtcNow; switch (entry.State) { case EntityState.Modified: entity.UpdatedAt = now; break; case EntityState.Added: entity.CreatedAt = now; break; default: break; } } }
public static void UpdateSoftDeletable(this Infrastructure.DB.NotSteamContext context) { var entries = context.ChangeTracker.Entries(); foreach (var entry in entries.Where(entry => entry.Entity is ISoftDeletable).Select(entry => entry)) { var entity = (ISoftDeletable)entry.Entity; switch (entry.State) { case EntityState.Added: entity.IsDeleted = false; break; case EntityState.Deleted: entry.State = EntityState.Modified; entity.IsDeleted = true; break; default: break; } } }