修改批量添加
							parent
							
								
									b2851352f2
								
							
						
					
					
						commit
						501272a2a2
					
				| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
//--------------------------------------------------------------------
 | 
			
		||||
using IRaCIS.Core.Application.Helper;
 | 
			
		||||
using IRaCIS.Core.Domain.Share;
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
namespace IRaCIS.Core.Application.Contracts
 | 
			
		||||
{
 | 
			
		||||
    public class TrialSelectEmailNoticeConfigView : EmailNoticeConfigView
 | 
			
		||||
| 
						 | 
				
			
			@ -71,6 +72,8 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
 | 
			
		||||
        public UserTypeEnum? CopyUserType { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ///<summary> EmailNoticeConfigAddOrEdit  列表查询参数模型</summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1242,6 +1242,8 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
        [HttpPost]
 | 
			
		||||
        public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery inQuery)
 | 
			
		||||
        {
 | 
			
		||||
            var trialConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
 | 
			
		||||
 | 
			
		||||
            var emailNoticeConfigQueryable = _emailNoticeConfigRepository
 | 
			
		||||
           .WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys)
 | 
			
		||||
           .WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
 | 
			
		||||
| 
						 | 
				
			
			@ -1252,11 +1254,34 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
           .WhereIf(inQuery.EmailUrgentEnum != null, t => t.EmailUrgentEnum == inQuery.EmailUrgentEnum)
 | 
			
		||||
           .WhereIf(inQuery.ToUserType != null, t => t.EmailNoticeUserTypeList.Any(t => t.UserType == inQuery.ToUserType && t.EmailUserType == EmailUserType.To))
 | 
			
		||||
           .WhereIf(inQuery.CopyUserType != null, t => t.EmailNoticeUserTypeList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy))
 | 
			
		||||
           .WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
 | 
			
		||||
           .WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
 | 
			
		||||
           .WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
 | 
			
		||||
               && t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
 | 
			
		||||
           .ProjectTo<TrialSelectEmailNoticeConfigView>(_mapper.ConfigurationProvider, new { trialId = inQuery.TrialId });
 | 
			
		||||
 | 
			
		||||
            return await emailNoticeConfigQueryable.ToPagedListAsync(inQuery);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public async Task<IResponseOutput> BatchAddEnrollOrPdEmailConfig(Guid trialId)
 | 
			
		||||
        {
 | 
			
		||||
            var trialConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
 | 
			
		||||
 | 
			
		||||
            var emailNoticeConfigQueryable = _emailNoticeConfigRepository
 | 
			
		||||
 | 
			
		||||
              .WhereIf(trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
 | 
			
		||||
              .WhereIf(trialConfig.IsPDProgressView == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification)
 | 
			
		||||
               .WhereIf(trialConfig.IsPDProgressView == true && trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification
 | 
			
		||||
               && t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
 | 
			
		||||
              .ProjectTo<TrialSelectEmailNoticeConfigView>(_mapper.ConfigurationProvider);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var list = await emailNoticeConfigQueryable.ToListAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            return await BatchAddSysEmailConfig(_mapper.Map<List<BatchAddTrialEmailNoticeConfig>>(list.Where(t => t.IsHaveSelected == false).ToList()));
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///  批量勾选  传递列表每行数据,后台进行处理转换,建立关联关系
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -1320,32 +1345,13 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public async Task<IResponseOutput> BatchAddEnrollOrPdEmailConfig(Guid trialId)
 | 
			
		||||
        {
 | 
			
		||||
            var trialConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
 | 
			
		||||
 | 
			
		||||
            var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId)
 | 
			
		||||
 | 
			
		||||
              .WhereIf(trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
 | 
			
		||||
              .WhereIf(trialConfig.IsPDProgressView == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification)
 | 
			
		||||
               .WhereIf(trialConfig.IsPDProgressView == true && trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification
 | 
			
		||||
               && t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
 | 
			
		||||
              .ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var list = await trialEmailNoticeConfigQueryable.ToListAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            return await BatchAddSysEmailConfig(_mapper.Map<List<BatchAddTrialEmailNoticeConfig>>(list));
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public async Task<IResponseOutput<List<TrialEmailNoticeConfigView>>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
 | 
			
		||||
        {
 | 
			
		||||
            //await SyncSystemEmainCofigDocListAsync(inQuery.TrialId);
 | 
			
		||||
 | 
			
		||||
            var trialConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
 | 
			
		||||
              .WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null)
 | 
			
		||||
| 
						 | 
				
			
			@ -1358,10 +1364,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
              .WhereIf(inQuery.CopyUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy))
 | 
			
		||||
 | 
			
		||||
              .WhereIf(inQuery.BusinessModuleEnum != null, t => t.BusinessModuleEnum == inQuery.BusinessModuleEnum)
 | 
			
		||||
              .WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
 | 
			
		||||
              .WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
 | 
			
		||||
               .WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
 | 
			
		||||
               && t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
 | 
			
		||||
 | 
			
		||||
              .ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
 | 
			
		||||
 | 
			
		||||
            var sortField = string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialEmailNoticeConfigView.Code) : inQuery.SortField;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
 | 
			
		||||
            CreateMap<BatchAddTrialEmailNoticeConfig, TrialEmailNoticeConfig>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<TrialEmailNoticeConfigView, BatchAddTrialEmailNoticeConfig > ();
 | 
			
		||||
            CreateMap<TrialSelectEmailNoticeConfigView, BatchAddTrialEmailNoticeConfig > ();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            CreateMap<AddOrEditTrialDocument, TrialDocument>()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue