[CHANGE] History -> Audit

This commit is contained in:
max
2025-09-14 03:30:39 +02:00
parent 0f83cf1ddc
commit e82736a45f
4 changed files with 19 additions and 19 deletions

View File

@@ -67,7 +67,7 @@ public class ClientService(IServiceScopeFactory scopeFactory, ILogger<ClientServ
LogEvent("Failed to save client: " + e.Message, LogSeverity.Warning); LogEvent("Failed to save client: " + e.Message, LogSeverity.Warning);
return ResultError.Error(e); return ResultError.Error(e);
} }
var saveResult = await _libraryService.SaveChannelAsync(channel, cancellationToken); var saveResult = await _libraryService.SaveChannelAsync(channel, cancellationToken);
return saveResult; return saveResult;
} }

View File

@@ -11,7 +11,7 @@ public class AuditInterceptor : SaveChangesInterceptor
{ {
public override InterceptionResult<int> SavingChanges(DbContextEventData eventData, InterceptionResult<int> result) public override InterceptionResult<int> SavingChanges(DbContextEventData eventData, InterceptionResult<int> result)
{ {
AddHistory(eventData.Context); AddAudit(eventData.Context);
return base.SavingChanges(eventData, result); return base.SavingChanges(eventData, result);
} }
@@ -20,11 +20,11 @@ public class AuditInterceptor : SaveChangesInterceptor
InterceptionResult<int> result, InterceptionResult<int> result,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
AddHistory(eventData.Context); AddAudit(eventData.Context);
return base.SavingChangesAsync(eventData, result, cancellationToken); return base.SavingChangesAsync(eventData, result, cancellationToken);
} }
private void AddHistory(DbContext? context) private void AddAudit(DbContext? context)
{ {
if (context == null) return; if (context == null) return;
@@ -32,7 +32,7 @@ public class AuditInterceptor : SaveChangesInterceptor
.Where(e => e.State is EntityState.Modified or EntityState.Deleted or EntityState.Added && Attribute.IsDefined(e.Entity.GetType(), .Where(e => e.State is EntityState.Modified or EntityState.Deleted or EntityState.Added && Attribute.IsDefined(e.Entity.GetType(),
typeof(AuditableAttribute))); typeof(AuditableAttribute)));
var histories = new List<EntityHistory>(); var audits = new List<EntityAudit>();
foreach (var entry in entries) foreach (var entry in entries)
{ {
@@ -49,34 +49,34 @@ public class AuditInterceptor : SaveChangesInterceptor
switch (entry.State) switch (entry.State)
{ {
case EntityState.Added: case EntityState.Added:
histories.AddRange(allowedProperties audits.AddRange(allowedProperties
.Where(p => p.CurrentValue != null) .Where(p => p.CurrentValue != null)
.Select(p => CreateHistory(entry, p, entry.State, primaryKey)) .Select(p => CreateAudit(entry, p, entry.State, primaryKey))
); );
break; break;
case EntityState.Modified: case EntityState.Modified:
histories.AddRange(allowedProperties audits.AddRange(allowedProperties
.Where(p => p.IsModified) .Where(p => p.IsModified)
.Select(p => CreateHistory(entry, p, entry.State, primaryKey)) .Select(p => CreateAudit(entry, p, entry.State, primaryKey))
); );
break; break;
case EntityState.Deleted: case EntityState.Deleted:
histories.AddRange(allowedProperties audits.AddRange(allowedProperties
.Select(p => CreateHistory(entry, p, entry.State, primaryKey)) .Select(p => CreateAudit(entry, p, entry.State, primaryKey))
); );
break; break;
} }
} }
if (histories.Count != 0) if (audits.Count != 0)
{ {
context.Set<EntityHistory>().AddRange(histories); context.Set<EntityAudit>().AddRange(audits);
} }
} }
private EntityHistory CreateHistory(EntityEntry entry, PropertyEntry prop, EntityState changeType, string? primaryKey) private EntityAudit CreateAudit(EntityEntry entry, PropertyEntry prop, EntityState changeType, string? primaryKey)
{ {
return new EntityHistory return new EntityAudit
{ {
EntityName = entry.Entity.GetType().Name, EntityName = entry.Entity.GetType().Name,
EntityId = primaryKey ?? "Unknown", EntityId = primaryKey ?? "Unknown",

View File

@@ -14,7 +14,7 @@ public sealed class LibraryDbContext : DbContext
Database.EnsureCreated(); Database.EnsureCreated();
} }
public DbSet<EntityHistory> Histories { get; set; } public DbSet<EntityAudit> Histories { get; set; }
public DbSet<CaptionEntity> Captions { get; set; } public DbSet<CaptionEntity> Captions { get; set; }
public DbSet<ChannelEntity> Channels { get; set; } public DbSet<ChannelEntity> Channels { get; set; }
@@ -32,9 +32,9 @@ public sealed class LibraryDbContext : DbContext
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
modelBuilder.Entity<EntityHistory>(eh => modelBuilder.Entity<EntityAudit>(eh =>
{ {
eh.ToTable("entity_history"); eh.ToTable("audits");
}); });
modelBuilder.Entity<CaptionEntity>(ce => modelBuilder.Entity<CaptionEntity>(ce =>

View File

@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore;
namespace Manager.Data.Entities.Audit; namespace Manager.Data.Entities.Audit;
public class EntityHistory public class EntityAudit
{ {
[MaxLength(200)] [MaxLength(200)]
public required string EntityName { get; set; } public required string EntityName { get; set; }