diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs index b05e5f36b..bda6e6ddf 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs @@ -304,6 +304,7 @@ namespace IRaCIS.Core.Application.Service var subjectList = query.ToList(); var doctorUserIdQuery = from enroll in _repository.Where(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit)) + .Where(t => t.EnrollReadingCriteriaList.Any(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.IsJoinAnalysis == true)) join user in _repository.Where() on enroll.DoctorId equals user.DoctorId select user.Id; @@ -741,6 +742,7 @@ namespace IRaCIS.Core.Application.Service } [HttpPost] + [UnitOfWork] [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] public async Task UpdateTrialVirtualSiteCode(UpdateTrialSiteCodeCommand inCommand) { @@ -749,7 +751,12 @@ namespace IRaCIS.Core.Application.Service trial.VitrualSiteCode = inCommand.VirtualSiteCode; - await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = inCommand.VirtualSiteCode,TrialId=inCommand.TrialId }); + 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 _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = inCommand.VirtualSiteCode, TrialId = inCommand.TrialId }); await _trialRepository.SaveChangesAsync(); @@ -791,7 +798,7 @@ namespace IRaCIS.Core.Application.Service if (string.IsNullOrEmpty(trial.VitrualSiteCode)) { - await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode,TrialId=addOrEditTaskConsistentRule.TrialId }); + await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode, TrialId = addOrEditTaskConsistentRule.TrialId }); } trial.VitrualSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs index 31808a25a..dcdddd581 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs @@ -273,6 +273,11 @@ namespace IRaCIS.Core.Application.Services //---Code is not allowed to be repeated return ResponseOutput.NotOk(_localizer["TrialSite_CodeDuplicate"]); } + + if(!string.IsNullOrEmpty(editTrialSiteCommand.TrialSiteCode) && await _trialRepository.AnyAsync(t=>t.Id==trialId && t.VitrualSiteCode == editTrialSiteCommand.TrialSiteCode) ) + { + return ResponseOutput.NotOk(_localizer["TrialSite_CodeDuplicate2"]); + } }