diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 24e25be6b..83a40e9a1 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -31,6 +31,7 @@ using Microsoft.AspNetCore.Components.Routing; using IRaCIS.Core.Application.ViewModel; using Microsoft.AspNetCore.Identity; using NPOI.SS.Formula.Functions; +using System.Security.Policy; namespace IRaCIS.Core.Application.Contracts { @@ -1209,10 +1210,36 @@ namespace IRaCIS.Core.Application.Contracts //加入到Site CRC - foreach (var site in addUserRoleList) + foreach (var trialsSiteItem in addUserRoleList.GroupBy(t => t.TrialSiteId)) { + var siteUserRoleList = trialsSiteItem.ToList(); - //var findTrialSiteUserRole=_trialSiteUserRoleRepository.Where(t=>t.TrialId==trialId && t.user) + foreach (var siteUserRole in siteUserRoleList) + { + var findUserRole = existSysUser.UserRoleList.Where(t => t.UserTypeId == siteUserRole.UserTypeId).FirstOrDefault(); + + if (findUserRole != null) + { + + var findTrialSiteUserRole = await _trialSiteUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialSiteId == trialsSiteItem.Key && t.UserId == findUserRole.Id, true, true).FirstOrDefaultAsync(); + + if (findTrialSiteUserRole != null) + { + findTrialSiteUserRole.IsDeleted = false; + findTrialSiteUserRole.DeletedTime = null; + + } + else + { + await _trialSiteUserRoleRepository.AddAsync(new TrialSiteUserRole() { TrialId = trialId, TrialSiteId = trialsSiteItem.Key, UserId = findUserRole.Id }); + } + + } + else + { + throw new BusinessValidationFailedException("database dirty data ,pleasse check"); + } + } }