修改文档关联标准
parent
af603b7bc6
commit
a59f2f2f60
|
@ -454,12 +454,11 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.SyncSystemEmainCofigDocListAsync(System.Guid,System.Nullable{IRaCIS.Core.Domain.Share.CriterionType})">
|
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.SyncSystemEmainCofigDocListAsync(System.Guid)">
|
||||||
<summary>
|
<summary>
|
||||||
同步系统配置的文档到想项目中
|
同步系统配置的文档到想项目中
|
||||||
</summary>
|
</summary>
|
||||||
<param name="trialId"></param>
|
<param name="trialId"></param>
|
||||||
<param name="criterionTypeEnum"></param>
|
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
|
|
||||||
</member>
|
</member>
|
||||||
|
|
|
@ -100,7 +100,11 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
|
||||||
public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; }
|
public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
public CriterionType? CriterionTypeEnum { get; set; }
|
//public CriterionType? CriterionTypeEnum { get; set; }
|
||||||
|
|
||||||
|
public Guid? TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
|
public bool IsDistinguishCriteria { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
EmailSMTPServerAddress = x.EmailSMTPServerAddress,
|
EmailSMTPServerAddress = x.EmailSMTPServerAddress,
|
||||||
EmailFromEmail = x.EmailFromEmail,
|
EmailFromEmail = x.EmailFromEmail,
|
||||||
EmailFromName = x.EmailFromEmail,
|
EmailFromName = x.EmailFromEmail,
|
||||||
IsConfigureEmail=x.IsConfigureEmail,
|
IsConfigureEmail = x.IsConfigureEmail,
|
||||||
EmailSMTPServerPort = x.EmailSMTPServerPort
|
EmailSMTPServerPort = x.EmailSMTPServerPort
|
||||||
|
|
||||||
}).FirstNotNullAsync();
|
}).FirstNotNullAsync();
|
||||||
|
@ -88,12 +88,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
EmailAuthorizationCode = inDto.EmailAuthorizationCode,
|
EmailAuthorizationCode = inDto.EmailAuthorizationCode,
|
||||||
EmailSMTPServerAddress = inDto.EmailSMTPServerAddress,
|
EmailSMTPServerAddress = inDto.EmailSMTPServerAddress,
|
||||||
EmailSMTPServerPort = inDto.EmailSMTPServerPort,
|
EmailSMTPServerPort = inDto.EmailSMTPServerPort,
|
||||||
IsConfigureEmail=true,
|
IsConfigureEmail = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await _trialEmailNoticeConfigRepository.BatchUpdateNoTrackingAsync(x => x.TrialId == inDto.TrialId, x => new TrialEmailNoticeConfig()
|
await _trialEmailNoticeConfigRepository.BatchUpdateNoTrackingAsync(x => x.TrialId == inDto.TrialId, x => new TrialEmailNoticeConfig()
|
||||||
{
|
{
|
||||||
AuthorizationCode = inDto.EmailAuthorizationCode,
|
AuthorizationCode = inDto.EmailAuthorizationCode,
|
||||||
FromEmail = inDto.EmailFromEmail,
|
FromEmail = inDto.EmailFromEmail,
|
||||||
|
@ -103,36 +103,56 @@ namespace IRaCIS.Core.Application.Service
|
||||||
});
|
});
|
||||||
|
|
||||||
await _trialRepository.SaveChangesAsync();
|
await _trialRepository.SaveChangesAsync();
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 同步系统配置的文档到想项目中
|
/// 同步系统配置的文档到想项目中
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="trialId"></param>
|
/// <param name="trialId"></param>
|
||||||
/// <param name="criterionTypeEnum"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
///
|
///
|
||||||
private async Task SyncSystemEmainCofigDocListAsync(Guid trialId, CriterionType? criterionTypeEnum)
|
private async Task SyncSystemEmainCofigDocListAsync(Guid trialId)
|
||||||
{
|
{
|
||||||
if (criterionTypeEnum != null)
|
|
||||||
{
|
|
||||||
var docmentList = _repository.Where<CommonDocument>(t => t.CriterionTypeEnum == criterionTypeEnum).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum }).ToList();
|
|
||||||
|
|
||||||
var trialDocCount = _trialEmailNoticeConfigRepository.Where(t => t.CriterionTypeEnum == criterionTypeEnum && t.TrialId == trialId).Count();
|
//判断流程配置是否确认 确认了一定确认了标准 可以进行同步
|
||||||
|
|
||||||
|
if (_repository.Where<Trial>(t => t.Id == trialId).Any(t => t.IsTrialProcessConfirmed == true))
|
||||||
|
{
|
||||||
|
|
||||||
|
//只要有系统标准的文档 说明同步过了
|
||||||
|
var trialDocCount = _trialEmailNoticeConfigRepository.Where(t =>/* t.CriterionTypeEnum == criterionTypeEnum &&*/ t.TrialId == trialId && t.TrialReadingCriterionId != null).Count();
|
||||||
|
|
||||||
if (trialDocCount == 0)
|
if (trialDocCount == 0)
|
||||||
{
|
{
|
||||||
|
//找到确认的标准
|
||||||
|
var list= await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync();
|
||||||
|
|
||||||
|
var confirmedCriterionTypeList = list.Select(t => (CriterionType?) t.CriterionType).ToList();
|
||||||
|
|
||||||
|
var docmentList = _repository.Where<CommonDocument>(t => confirmedCriterionTypeList.Contains(t.CriterionTypeEnum) ).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum ,t.CriterionTypeEnum}).ToList();
|
||||||
|
|
||||||
|
|
||||||
foreach (var item in docmentList)
|
foreach (var item in docmentList)
|
||||||
{
|
{
|
||||||
await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig() { TrialId=trialId, CriterionTypeEnum= criterionTypeEnum.Value, FileName = item.Name, FilePath = item.Path, BusinessScenarioEnum = item.BusinessScenarioEnum, Code = item.Code });
|
await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig()
|
||||||
|
{
|
||||||
|
TrialId = trialId,
|
||||||
|
TrialReadingCriterionId= list.Where(t=>t.CriterionType==item.CriterionTypeEnum).FirstOrDefault()?.TrialReadingCriterionId,
|
||||||
|
FileName = item.Name,
|
||||||
|
FilePath = item.Path,
|
||||||
|
BusinessScenarioEnum = item.BusinessScenarioEnum,
|
||||||
|
Code = item.Code
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
|
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,15 +182,15 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
VisitEarliestScanDate = t.SourceSubjectVisit.EarliestScanDate,
|
VisitEarliestScanDate = t.SourceSubjectVisit.EarliestScanDate,
|
||||||
VisitName =(string?) t.SourceSubjectVisit.VisitName,
|
VisitName = (string?)t.SourceSubjectVisit.VisitName,
|
||||||
IsFinalVisit=(bool?)t.SourceSubjectVisit.IsFinalVisit,
|
IsFinalVisit = (bool?)t.SourceSubjectVisit.IsFinalVisit,
|
||||||
PDState =(PDStateEnum?) t.SourceSubjectVisit.PDState,
|
PDState = (PDStateEnum?)t.SourceSubjectVisit.PDState,
|
||||||
IsEnrollmentConfirm= (bool?) t.SourceSubjectVisit.IsEnrollmentConfirm,
|
IsEnrollmentConfirm = (bool?)t.SourceSubjectVisit.IsEnrollmentConfirm,
|
||||||
IsBaseline =(bool?) t.SourceSubjectVisit.IsBaseLine,
|
IsBaseline = (bool?)t.SourceSubjectVisit.IsBaseLine,
|
||||||
|
|
||||||
|
|
||||||
ModuleEarliestScanDate = t.ReadModule.SubjectVisit.EarliestScanDate,
|
ModuleEarliestScanDate = t.ReadModule.SubjectVisit.EarliestScanDate,
|
||||||
ModuleVisitName = (string?) t.ReadModule.SubjectVisit.VisitName,
|
ModuleVisitName = (string?)t.ReadModule.SubjectVisit.VisitName,
|
||||||
MoudulePDState = (PDStateEnum?)t.ReadModule.SubjectVisit.PDState,
|
MoudulePDState = (PDStateEnum?)t.ReadModule.SubjectVisit.PDState,
|
||||||
|
|
||||||
t.SourceSubjectVisitId,
|
t.SourceSubjectVisitId,
|
||||||
|
@ -206,7 +226,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
|
if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
{
|
{
|
||||||
//入组确认场景
|
//入组确认场景
|
||||||
if (taskInfo.IsEnrollmentConfirm==true && taskInfo.IsEnrollementQualificationConfirm==true && taskInfo.IsBaseline==true)
|
if (taskInfo.IsEnrollmentConfirm == true && taskInfo.IsEnrollementQualificationConfirm == true && taskInfo.IsBaseline == true)
|
||||||
{
|
{
|
||||||
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed;
|
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed;
|
||||||
|
|
||||||
|
@ -257,7 +277,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var toUserList = _repository.Where<TrialSiteUser>(t => t.TrialId == taskInfo.TrialId && toUserTypeEnumList.Contains(t.User.UserTypeEnum) && t.SiteId== taskInfo.SiteId).Select(t => new { t.User.EMail, t.User.FullName }).ToList();
|
var toUserList = _repository.Where<TrialSiteUser>(t => t.TrialId == taskInfo.TrialId && toUserTypeEnumList.Contains(t.User.UserTypeEnum) && t.SiteId == taskInfo.SiteId).Select(t => new { t.User.EMail, t.User.FullName }).ToList();
|
||||||
|
|
||||||
var copyUserTypeEnumList = emailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.Copy).Select(c => c.UserType).ToList();
|
var copyUserTypeEnumList = emailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.Copy).Select(c => c.UserType).ToList();
|
||||||
var copyUserList = _repository.Where<TrialUser>(t => t.TrialId == taskInfo.TrialId && copyUserTypeEnumList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToList();
|
var copyUserList = _repository.Where<TrialUser>(t => t.TrialId == taskInfo.TrialId && copyUserTypeEnumList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToList();
|
||||||
|
@ -341,7 +361,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
//如果其他阅片人已经做了,说明发送了入组确认报告,第二个人做完就不发送了
|
//如果其他阅片人已经做了,说明发送了入组确认报告,第二个人做完就不发送了
|
||||||
if (await _visitTaskRepository.AnyAsync(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false &&
|
if (await _visitTaskRepository.AnyAsync(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false &&
|
||||||
t.Id != visitTaskId && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.TrialReadingCriterionId==taskInfo.TrialReadingCriterionId))
|
t.Id != visitTaskId && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId))
|
||||||
{
|
{
|
||||||
isNeedSend = false;
|
isNeedSend = false;
|
||||||
}
|
}
|
||||||
|
@ -369,7 +389,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)
|
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)
|
||||||
{
|
{
|
||||||
|
@ -414,7 +434,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
else//非截止访视 在访视读完后,发送
|
else//非截止访视 在访视读完后,发送
|
||||||
{
|
{
|
||||||
answer = await TranslatePdStateAsync(visitTaskId, ReadingCategory.Visit,taskInfo.CriterionType);
|
answer = await TranslatePdStateAsync(visitTaskId, ReadingCategory.Visit, taskInfo.CriterionType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//截止访视 在访视读完,并完成全局阅片后发送全局的结果
|
//截止访视 在访视读完,并完成全局阅片后发送全局的结果
|
||||||
|
@ -438,7 +458,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
if (taskInfo.ArbitrationRule == ArbitrationRule.Visit)
|
if (taskInfo.ArbitrationRule == ArbitrationRule.Visit)
|
||||||
{
|
{
|
||||||
//找到 访视,裁判 所有有效任务(不可能有全局的) 访视和裁判任务的SourceSubjectVisitId 一样
|
//找到 访视,裁判 所有有效任务(不可能有全局的) 访视和裁判任务的SourceSubjectVisitId 一样
|
||||||
var taskList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TrialReadingCriterionId==taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect &&
|
var taskList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect &&
|
||||||
(t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
(t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
@ -503,7 +523,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
//是全局任务 或者全局的裁判任务 (如果是全局任务,那么此时裁判任务已经生成)
|
//是全局任务 或者全局的裁判任务 (如果是全局任务,那么此时裁判任务已经生成)
|
||||||
else if (taskInfo.SouceReadModuleId != null)
|
else if (taskInfo.SouceReadModuleId != null)
|
||||||
{
|
{
|
||||||
var taskList = await _visitTaskRepository.Where(t =>t.TrialReadingCriterionId==taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && t.SouceReadModuleId == taskInfo.SouceReadModuleId
|
var taskList = await _visitTaskRepository.Where(t => t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && t.SouceReadModuleId == taskInfo.SouceReadModuleId
|
||||||
&& (t.ReadingCategory == ReadingCategory.Global || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
&& (t.ReadingCategory == ReadingCategory.Global || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
||||||
|
|
||||||
//两个全局没有裁判
|
//两个全局没有裁判
|
||||||
|
@ -575,7 +595,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
//在两位阅片人读完访视后,如果有裁判者等裁判读完,如果无裁判则等第二个人的读完
|
//在两位阅片人读完访视后,如果有裁判者等裁判读完,如果无裁判则等第二个人的读完
|
||||||
|
|
||||||
var taskList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TrialReadingCriterionId==taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && (t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
var taskList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && (t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Judge)).ToListAsync();
|
||||||
|
|
||||||
//这里要求 到这里已经如果有裁判 已经生成裁判了保存数据库
|
//这里要求 到这里已经如果有裁判 已经生成裁判了保存数据库
|
||||||
if (taskList.Count == 2 && taskList.Count(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.ReadingCategory == ReadingCategory.Visit) == 2)
|
if (taskList.Count == 2 && taskList.Count(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.ReadingCategory == ReadingCategory.Visit) == 2)
|
||||||
|
@ -619,7 +639,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
isNeedSend=false;
|
isNeedSend = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region MiniWord 组织字典 发送
|
#region MiniWord 组织字典 发送
|
||||||
|
@ -631,7 +651,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
["ResearchProgramNo"] = taskInfo.ResearchProgramNo,
|
["ResearchProgramNo"] = taskInfo.ResearchProgramNo,
|
||||||
["TrialSiteCode"] = taskInfo.TrialSiteCode,
|
["TrialSiteCode"] = taskInfo.TrialSiteCode,
|
||||||
["SubjectCode"] = taskInfo.SubjectCode,
|
["SubjectCode"] = taskInfo.SubjectCode,
|
||||||
["VisitName"] = taskInfo.SourceSubjectVisitId != null ? taskInfo.VisitName:taskInfo.ModuleVisitName,
|
["VisitName"] = taskInfo.SourceSubjectVisitId != null ? taskInfo.VisitName : taskInfo.ModuleVisitName,
|
||||||
["EarliestScanDate"] = taskInfo.SourceSubjectVisitId != null ? taskInfo.VisitEarliestScanDate : taskInfo.ModuleEarliestScanDate,
|
["EarliestScanDate"] = taskInfo.SourceSubjectVisitId != null ? taskInfo.VisitEarliestScanDate : taskInfo.ModuleEarliestScanDate,
|
||||||
["SignTime"] = taskInfo.SignTime,
|
["SignTime"] = taskInfo.SignTime,
|
||||||
["Result"] = answer
|
["Result"] = answer
|
||||||
|
@ -786,11 +806,11 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -814,11 +834,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
|
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
|
||||||
{
|
{
|
||||||
|
|
||||||
await SyncSystemEmainCofigDocListAsync(inQuery.TrialId, inQuery.CriterionTypeEnum);
|
|
||||||
|
|
||||||
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
|
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
|
.WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null)
|
||||||
.WhereIf(inQuery.CriterionTypeEnum == null, t => t.CriterionTypeEnum == null)
|
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
||||||
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
|
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
|
||||||
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
|
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
@ -892,18 +911,18 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
||||||
{
|
{
|
||||||
var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId ).WhereIf(config.ToUserTypeList!=null,t=> config.ToUserTypeList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId && config.ToUserTypeList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
if (!config.FromEmail.Contains("@") || string.IsNullOrEmpty(config.FromEmail))
|
if (!config.FromEmail.Contains("@") || string.IsNullOrEmpty(config.FromEmail))
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("项目发件邮箱配置有误,请核实");
|
throw new BusinessValidationFailedException("项目发件邮箱配置有误,请核实");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (toUserList.Count() == 0|| toUserList.Where(t=>t.EMail.Contains("@")).Count()==0)
|
|
||||||
|
if (toUserList.Count() == 0 || toUserList.Where(t => t.EMail.Contains("@")).Count() == 0)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("项目没有有效的收件人,无法发送邮件");
|
throw new BusinessValidationFailedException("项目没有有效的收件人,无法发送邮件");
|
||||||
}
|
}
|
||||||
|
@ -948,7 +967,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
||||||
throw new BusinessValidationFailedException("发件人配置错误,请核对服务器地址或者授权码是否填写有误"+ex.Message);
|
throw new BusinessValidationFailedException("发件人配置错误,请核对服务器地址或者授权码是否填写有误" + ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,9 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
public CriterionType? CriterionTypeEnum { get; set; }
|
public CriterionType? CriterionTypeEnum { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid? TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public string FilePath { get; set; } = string.Empty;
|
public string FilePath { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue