initial commit from an older template

This commit is contained in:
2025-09-20 22:33:35 +03:00
commit b6778046c2
134 changed files with 6657 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
using GamificationService.Models.Database;
using GamificationService.Services.CurrentUsers;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;
namespace GamificationService.Database.Extensions;
public static class ChangeTrackerExtensions
{
public static void SetAuditProperties(this ChangeTracker changeTracker, ICurrentUserService currentUserService)
{
changeTracker.DetectChanges();
IEnumerable<EntityEntry> entities =
changeTracker
.Entries()
.Where(t => t.Entity is AuditableEntity &&
(
t.State == EntityState.Deleted
|| t.State == EntityState.Added
|| t.State == EntityState.Modified
));
if (entities.Any())
{
DateTimeOffset timestamp = DateTimeOffset.UtcNow;
string user = currentUserService.GetCurrentUser().Login ?? "Unknown";
foreach (EntityEntry entry in entities)
{
AuditableEntity entity = (AuditableEntity)entry.Entity;
switch (entry.State)
{
case EntityState.Added:
entity.CreatedOn = timestamp;
entity.CreatedBy = user;
entity.UpdatedOn = timestamp;
entity.UpdatedBy = user;
break;
case EntityState.Modified:
entity.UpdatedOn = timestamp;
entity.UpdatedBy = user;
break;
case EntityState.Deleted:
entity.UpdatedOn = timestamp;
entity.UpdatedBy = user;
entry.State = EntityState.Deleted;
break;
}
}
}
}
}