diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs index 9682d2067..460acd914 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs @@ -835,16 +835,23 @@ namespace IRaCIS.Core.Application.Service public async Task UpdateTrialVirtualSiteCode(UpdateTrialSiteCodeCommand inCommand) { + if (_trialSiteRepository.Where(t => t.TrialId == inCommand.TrialId, false, true).Any(t => t.TrialSiteCode == inCommand.VirtualSiteCode)) + { + return ResponseOutput.NotOk(_localizer["TaskConsistent_SiteCodeExists"]); + } + var trial = await _trialRepository.FirstOrDefaultAsync(t => t.Id == inCommand.TrialId); var oldCode = trial.VitrualSiteCode; + trial.VitrualSiteCode = inCommand.VirtualSiteCode; await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trial.Id, u => new VisitTask() { BlindTrialSiteCode = inCommand.VirtualSiteCode }); await _taskConsistentRuleRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trial.Id, u => new TaskConsistentRule() { BlindTrialSiteCode = inCommand.VirtualSiteCode }); - //await _visitTaskRepository.ExecuteUpdateAsync(t => t.TrialId == trial.Id, s=> s.SetProperty(e=>e.BlindSubjectCode,u=>u.BlindSubjectCode)); + + await _visitTaskRepository.ExecuteUpdateAsync(t => t.TrialId == trial.Id, s => s.SetProperty(e => e.BlindSubjectCode, u => u.BlindSubjectCode.Replace(oldCode, inCommand.VirtualSiteCode))); await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = inCommand.VirtualSiteCode, TrialId = inCommand.TrialId }); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs index dcdddd581..4ce4e99b1 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs @@ -274,7 +274,7 @@ namespace IRaCIS.Core.Application.Services return ResponseOutput.NotOk(_localizer["TrialSite_CodeDuplicate"]); } - if(!string.IsNullOrEmpty(editTrialSiteCommand.TrialSiteCode) && await _trialRepository.AnyAsync(t=>t.Id==trialId && t.VitrualSiteCode == editTrialSiteCommand.TrialSiteCode) ) + if(!string.IsNullOrEmpty(editTrialSiteCommand.TrialSiteCode) && await _trialRepository.AnyAsync(t=>t.Id==trialId && t.VitrualSiteCode == editTrialSiteCommand.TrialSiteCode,true) ) { return ResponseOutput.NotOk(_localizer["TrialSite_CodeDuplicate2"]); }