public void AuditChanges(object userName, ExpandoObject metadata) { // Get all Deleted/Modified entities (not Unmodified or Detached or Added) foreach ( DbEntityEntry ent in _context.ChangeTracker.Entries() .Where(p => p.State == EntityState.Deleted || p.State == EntityState.Modified)) { using (var auditer = new LogAuditor(ent)) { var eventType = GetEventType(ent); AuditLog record = auditer.CreateLogRecord(userName, eventType, _context, metadata); if (record != null) { var arg = new AuditLogGeneratedEventArgs(record, ent.Entity, metadata); RaiseOnAuditLogGenerated(this, arg); if (!arg.SkipSavingLog) { _context.AuditLog.Add(record); } } } } }
public void AuditDeletions(object userName, ExpandoObject metadata) { List <AuditLog> records = new List <AuditLog>(); // Get all Deleted entities (not Modified or Unmodified or Detached or Added) var deletions = GetChangesByState(EntityState.Deleted); foreach (EntityEntry ent in deletions) { using (var auditer = new LogAuditor(ent)) { var eventType = GetEventType(ent); AuditLog record = auditer.CreateLogRecord(userName, eventType, _context, metadata); if (record != null) { var arg = new AuditLogGeneratedEventArgs(record, ent.Entity, metadata); RaiseOnAuditLogGenerated(this, arg); if (!arg.SkipSavingLog) { records.Add(record); } } } } _context.AuditLogs.AddRange(records); }
public void AuditAdditions(object userName, IEnumerable <DbEntityEntry> addedEntries, ExpandoObject metadata) { // Get all Added entities foreach (DbEntityEntry ent in addedEntries) { using (var auditer = new LogAuditor(ent)) { AuditLog record = auditer.CreateLogRecord(userName, EventType.Added, _context, metadata); if (record != null) { var arg = new AuditLogGeneratedEventArgs(record, ent.Entity, metadata); RaiseOnAuditLogGenerated(this, arg); if (!arg.SkipSavingLog) { _context.AuditLog.Add(record); } } } } }
private void RaiseOnAuditLogGenerated(object sender, AuditLogGeneratedEventArgs e) { OnAuditLogGenerated?.Invoke(sender, e); }
protected virtual void RaiseOnAuditLogGenerated(object sender, AuditLogGeneratedEventArgs e) { OnAuditLogGenerated?.Invoke(sender, e); }