using System; using System.Threading; using System.Threading.Tasks; using EntityFrameworkCore.Triggered; using IRaCIS.Core.Domain.Models; namespace IRaCIS.Core.Application.Triggers { public class SoftDeleteTrigger : IBeforeSaveTrigger { public Task BeforeSave(ITriggerContext context, CancellationToken cancellationToken) { if (context.ChangeType == ChangeType.Modified) { if (context.Entity.IsDeleted) { context.Entity.DeletedTime=DateTime.UtcNow.AddHours(8); } else { context.Entity.DeletedTime = null; } } return Task.CompletedTask; } } }