62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
using AutoMapper.QueryableExtensions;
|
|
using EntityFrameworkCore.Triggered;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace IRaCIS.Core.Application.Triggers.AfterSaveTrigger
|
|
{
|
|
public class UserLogAfterTrigger(IRepository<IdentityUser> _identityUserRepository) : IAfterSaveTrigger<UserLog>
|
|
{
|
|
public async Task AfterSave(ITriggerContext<UserLog> context, CancellationToken cancellationToken)
|
|
{
|
|
var userlog = context.Entity;
|
|
|
|
if (context.ChangeType == ChangeType.Added)
|
|
{
|
|
|
|
if (userlog.TargetIdentityUserId != null)
|
|
{
|
|
var obj = await _identityUserRepository.Where(t => t.Id == userlog.TargetIdentityUserId).Select(t => new UserLogJsonObj()
|
|
{
|
|
DepartmentName = t.DepartmentName,
|
|
EMail = t.EMail,
|
|
FirstName = t.FirstName,
|
|
LastName = t.LastName,
|
|
OrganizationName = t.OrganizationName,
|
|
Phone = t.Phone,
|
|
PositionName = t.PositionName,
|
|
Sex = t.Sex,
|
|
Status = t.Status,
|
|
UserCode = t.UserCode,
|
|
UserName = t.UserName,
|
|
UserRoleList = t.UserRoleList.Select(t => new UserRoleLogObj()
|
|
{
|
|
IsUserRoleDisabled = t.IsUserRoleDisabled,
|
|
UserTypeEnum = t.UserTypeEnum,
|
|
UserTypeShortName = t.UserTypeRole.UserTypeShortName
|
|
}).ToList()
|
|
|
|
}).FirstOrDefaultAsync();
|
|
|
|
|
|
|
|
userlog.JsonObj = obj.ToJsonStr();
|
|
|
|
}
|
|
|
|
if (userlog.ActionIdentityUserId != null && userlog.ActionUserName.IsNullOrWhiteSpace())
|
|
{
|
|
userlog.ActionUserName = await _identityUserRepository.Where(t => t.Id == userlog.ActionIdentityUserId).Select(t => t.UserName).FirstOrDefaultAsync();
|
|
}
|
|
|
|
await _identityUserRepository.SaveChangesAsync();
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|