diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs index 7002fe225..00a6364c6 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs @@ -14,10 +14,10 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid TrialId { get; set; } - /// - /// 类型枚举 - /// - public OrganType OrganType { get; set; } + ///// + ///// 类型枚举 + ///// + //public OrganType OrganType { get; set; } public List OrganIds { get; set; } } @@ -53,7 +53,7 @@ namespace IRaCIS.Core.Application.ViewModel /// /// 类型枚举 /// - public OrganType OrganType { get; set; } + public OrganType? OrganType { get; set; } } public class GetTrialCheckOrganList : GetTrialOrganListOutDto diff --git a/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs index a0e49cdbd..8891541fe 100644 --- a/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs +++ b/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs @@ -81,13 +81,13 @@ namespace IRaCIS.Core.Application.Service /// public async Task BatchAddTrialOrgan(BatchAddTrialOrganInDto inDto) { - await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(t => t.TrialId==inDto.TrialId&&t.OrganType == inDto.OrganType); + //await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(t => t.TrialId==inDto.TrialId&&t.OrganType == inDto.OrganType); List organTrialInfos = inDto.OrganIds.Select(x => new OrganTrialInfo() { OrganInfoId=x, TrialId=inDto.TrialId, - OrganType=inDto.OrganType, + //OrganType=inDto.OrganType, }).ToList(); @@ -119,8 +119,9 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetTrialOrganList(GetTrialOrganListInDto inDto) { - var organInfoQueryable = from data in _organInfoRepository.Where(x => x.OrganType == inDto.OrganType) - join trialData in _organTrialInfoRepository.Where(x => x.TrialId == inDto.TrialId && x.OrganType == inDto.OrganType) + var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.OrganType!=null, x => x.OrganType == inDto.OrganType) + join trialData in _organTrialInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType) + .Where(x => x.TrialId == inDto.TrialId) on data.Id equals trialData.OrganInfoId select new GetTrialOrganListOutDto() { @@ -147,8 +148,9 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetTrialCheckOrganList(GetTrialOrganListInDto inDto) { - var organInfoQueryable = from data in _organInfoRepository.Where(x => x.OrganType == inDto.OrganType) - join trialData in _organTrialInfoRepository.Where(x => x.TrialId == inDto.TrialId && x.OrganType == inDto.OrganType) + var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType) + join trialData in _organTrialInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType) + .Where(x => x.TrialId == inDto.TrialId) on data.Id equals trialData.OrganInfoId into jtemp from leftjoin in jtemp.DefaultIfEmpty() select new GetTrialCheckOrganList()