using System; using System.Threading; using System.Threading.Tasks; using EntityFrameworkCore.Triggered; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; namespace IRaCIS.Core.Application.Triggers { public class AuditUpdateTrigger: IBeforeSaveTrigger { private readonly IUserInfo _userInfo; public AuditUpdateTrigger(IUserInfo userInfo) { _userInfo = userInfo; } public Task BeforeSave(ITriggerContext context, CancellationToken cancellationToken) { if (context.ChangeType == ChangeType.Modified|| context.ChangeType == ChangeType.Added) { context.Entity.UpdateUserId = _userInfo.Id; context.Entity.UpdateTime=DateTime.UtcNow.AddHours(8); } return Task.CompletedTask; } } }