//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 AuditAddTrigger: IBeforeSaveTrigger<IAuditAdd>
//    {
//        private readonly IUserInfo _userInfo;

//        public AuditAddTrigger(IUserInfo userInfo)
//        {
//            _userInfo = userInfo;
//        }

//        public Task BeforeSave(ITriggerContext<IAuditAdd> context, CancellationToken cancellationToken)
//        {
//            if (context.ChangeType == ChangeType.Added)
//            {
//                context.Entity.CreateUserId = _userInfo.Id;

//                if (context.Entity.CreateTime == default(DateTime))
//                {
//                    context.Entity.CreateTime = DateTime.Now;

//                }

//            }

//            return Task.CompletedTask;

//        }
//    }

//    public class AuditAddWithUsernameTrigger : IBeforeSaveTrigger<IAuditAddWithUserName>
//    {
//        private readonly IUserInfo _userInfo;

//        public AuditAddWithUsernameTrigger(IUserInfo userInfo)
//        {
//            _userInfo = userInfo;
//        }

//        public Task BeforeSave(ITriggerContext<IAuditAddWithUserName> context, CancellationToken cancellationToken)
//        {
//            if (context.ChangeType == ChangeType.Added)
//            {
//                context.Entity.CreateUserId = _userInfo.Id;
//                context.Entity.CreateUser = _userInfo.UserName;

//                if (context.Entity.CreateTime == default(DateTime))
//                {
//                    context.Entity.CreateTime = DateTime.Now;
//                }
//            }



//            return Task.CompletedTask;

//        }
//    }
//}