Initial code commit.

This commit is contained in:
2026-02-03 10:44:31 +08:00
parent 8927c5ae0e
commit d69fe2cc1f
99 changed files with 10839 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
using Microsoft.EntityFrameworkCore.ChangeTracking;
using Sufi.Demo.PeopleDirectory.Application.Enums;
using System.Text.Json;
namespace Sufi.Demo.PeopleDirectory.Persistence.Models.Audit
{
public class AuditEntry(EntityEntry entry)
{
public EntityEntry Entry { get; } = entry;
public string? UserId { get; set; }
public string TableName { get; set; } = null!;
public Dictionary<string, object?> KeyValues { get; } = new();
public Dictionary<string, object?> OldValues { get; } = new();
public Dictionary<string, object?> NewValues { get; } = new();
public List<PropertyEntry> TemporaryProperties { get; } = new();
public AuditType AuditType { get; set; }
public List<string> ChangedColumns { get; } = new();
public bool HasTemporaryProperties => TemporaryProperties.Any();
public Audit ToAudit()
{
var audit = new Audit
{
UserId = UserId,
Type = AuditType.ToString(),
TableName = TableName,
DateTime = DateTime.UtcNow,
PrimaryKey = JsonSerializer.Serialize(KeyValues),
OldValues = OldValues.Count == 0 ? null : JsonSerializer.Serialize(OldValues),
NewValues = NewValues.Count == 0 ? null : JsonSerializer.Serialize(NewValues),
AffectedColumns = ChangedColumns.Count == 0 ? null : JsonSerializer.Serialize(ChangedColumns)
};
return audit;
}
}
}