private Task OnAfterSaveChanges(List <AuditEntry> auditEntries) { if (auditEntries == null || auditEntries.Count == 0) { return(Task.CompletedTask); } foreach (var auditEntry in auditEntries) { // Get the final value of the temporary properties foreach (var prop in auditEntry.TemporaryProperties) { if (prop.Metadata.IsPrimaryKey()) { auditEntry.KeyValues[prop.Metadata.Name] = prop.CurrentValue; } else { auditEntry.NewValues[prop.Metadata.Name] = prop.CurrentValue; } } // Save the Audit entry _auditor.Create(auditEntry.ToAudit()); } return(Task.CompletedTask); }