From 707cd14f7a940e7ef79c61c91516c1617111ee47 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 16 May 2022 17:37:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/AuditingData.cs | 48 +++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 3057235d4..a1f631afe 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -50,8 +50,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common public async Task IncomingEntitys(List entitys) { // 修改 - await InsertAddEntitys(entitys.Where(x => x.State == EntityState.Modified && (!typeof(ISoftDelete).IsAssignableFrom(x.Entity.GetType()) - || !(bool)x.Entity.GetType().GetProperty("IsDeleted").GetValue(x.Entity)) + await InsertAddEntitys( + entitys.Where(x => x.State == EntityState.Modified && + (!typeof(ISoftDelete).IsAssignableFrom(x.Entity.GetType())|| !(bool)x.Entity.GetType().GetProperty("IsDeleted").GetValue(x.Entity)|| NodeleteTableTypes.Contains(x.Entity.GetType())) ).ToList(), "Update"); // 新增 @@ -59,7 +60,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common // 删除 await InsertAddEntitys(entitys.Where(x => x.State == EntityState.Deleted - || ((typeof(ISoftDelete).IsAssignableFrom(x.Entity.GetType()) && (bool)x.Entity.GetType().GetProperty("IsDeleted").GetValue(x.Entity))) + || (typeof(ISoftDelete).IsAssignableFrom(x.Entity.GetType()) && (bool)x.Entity.GetType().GetProperty("IsDeleted").GetValue(x.Entity)&&x.State==EntityState.Modified&& !NodeleteTableTypes.Contains(x.Entity.GetType())) ).ToList(), "Deleted"); @@ -68,6 +69,21 @@ namespace IRaCIS.Core.Infra.EFCore.Common //entitys.Where(x=>x.Entity.is) } + + /// + /// 特殊删除 + /// + private List NodeleteTableTypes + { + get + { + return new List() + { + typeof(TrialUser) + }; + } + } + /// /// 插入Add的实体 /// @@ -161,10 +177,34 @@ namespace IRaCIS.Core.Infra.EFCore.Common await InsertInspection(item, type); } + // 项目中心 + foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(TrialSite))) + { + await InsertInspection(item, type, x => new DataInspection() + { + GeneralId = x.Id, + }); + } + + // 项目人员 foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(TrialUser))) { - await InsertInspection(item, type); + + var entity = item.Entity as TrialUser; + var user =await _dbContext.Users.Include(x=>x.UserTypeRole).FirstOrDefaultAsync(x => x.Id == entity.UserId); + await InsertInspection(item, type, x => new DataInspection + { + TrialId=x.TrialId, + },new { + UserRealName= user.FullName, + UserName= user.UserName, + UserType= user.UserTypeRole.UserTypeShortName, + EMail= user.EMail, + Phone= user.Phone, + OrganizationName= user.OrganizationName, + State=entity.IsDeleted?"退出":"加入", + }); } // 受试者 foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(Subject)))