@@ -99,13 +99,13 @@ public class ImageConsumer(
|
||||
}
|
||||
|
||||
|
||||
var trialEmailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
|
||||
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable && t.IsAutoSend).FirstOrDefault();
|
||||
|
||||
if (trialEmailConfig != null)
|
||||
if (emailConfig != null)
|
||||
{
|
||||
var inDto = new SendImageReuploadEmailInDto
|
||||
{
|
||||
EmailNoticeConfig = trialEmailConfig,
|
||||
EmailNoticeConfig = emailConfig,
|
||||
Scenario = scenario,
|
||||
SubjectVisit = subjectVisit,
|
||||
TrialId = trialId,
|
||||
@@ -143,17 +143,17 @@ public class ImageConsumer(
|
||||
return; // 其他状态不发送邮件
|
||||
}
|
||||
|
||||
var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
|
||||
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable && t.IsAutoSend).FirstOrDefault();
|
||||
|
||||
if (trialEmailConfig != null)
|
||||
if (emailConfig != null)
|
||||
{
|
||||
var inDto = new SendImageReuploadEmailInDto
|
||||
{
|
||||
EmailNoticeConfig = trialEmailConfig,
|
||||
EmailNoticeConfig = emailConfig,
|
||||
Scenario = scenario,
|
||||
SubjectVisit = subjectVisit,
|
||||
TrialId = trialId,
|
||||
RequestBackStateEnum= context.Message.RequestBackState,
|
||||
RequestBackStateEnum = context.Message.RequestBackState,
|
||||
};
|
||||
await SendImageReuploadEmail(inDto);
|
||||
}
|
||||
@@ -185,13 +185,13 @@ public class ImageConsumer(
|
||||
return; // 其他状态不发送邮件
|
||||
}
|
||||
|
||||
var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
|
||||
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable && t.IsAutoSend).FirstOrDefault();
|
||||
|
||||
if (trialEmailConfig != null)
|
||||
if (emailConfig != null)
|
||||
{
|
||||
var inDto = new SendImageReuploadEmailInDto
|
||||
{
|
||||
EmailNoticeConfig = trialEmailConfig,
|
||||
EmailNoticeConfig = emailConfig,
|
||||
Scenario = scenario,
|
||||
SubjectVisit = subjectVisit,
|
||||
TrialId = trialId
|
||||
@@ -210,13 +210,13 @@ public class ImageConsumer(
|
||||
|
||||
var visitTaskId = context.Message.VisitTaskId;
|
||||
// 获取VisitTask关联的SubjectVisit
|
||||
var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x=>x.SourceSubjectVisit).FirstNotNullAsync();
|
||||
var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.SourceSubjectVisit).FirstNotNullAsync();
|
||||
var subjectVisit = new SubjectVisit() { };
|
||||
if (visitTask.SourceSubjectVisitId != null)
|
||||
{
|
||||
subjectVisit = visitTask.SourceSubjectVisit;
|
||||
}
|
||||
else if(visitTask.SouceReadModuleId!=null)
|
||||
else if (visitTask.SouceReadModuleId != null)
|
||||
{
|
||||
var readModule = await _readModuleRepository.Where(x => x.Id == visitTask.SouceReadModuleId).Include(x => x.SubjectVisit).FirstOrDefaultAsync();
|
||||
subjectVisit = readModule.SubjectVisit;
|
||||
@@ -238,13 +238,14 @@ public class ImageConsumer(
|
||||
default:
|
||||
return; // 其他状态不发送邮件
|
||||
}
|
||||
var trialEmailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
|
||||
|
||||
if (trialEmailConfig != null)
|
||||
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable && t.IsAutoSend).FirstOrDefault();
|
||||
|
||||
if (emailConfig != null)
|
||||
{
|
||||
var inDto = new SendImageReuploadEmailInDto
|
||||
{
|
||||
EmailNoticeConfig = trialEmailConfig,
|
||||
EmailNoticeConfig = emailConfig,
|
||||
Scenario = scenario,
|
||||
SubjectVisit = subjectVisit,
|
||||
TrialId = trialId
|
||||
@@ -272,15 +273,15 @@ public class ImageConsumer(
|
||||
List<UserRole> ccUserList = new List<UserRole>();
|
||||
|
||||
var emailNoticeUserList = await _emailNoticeUserTypeRepository.Where(x => x.EmailNoticeConfigId == inDto.EmailNoticeConfig.Id).ToListAsync();
|
||||
var userTypeEnum= emailNoticeUserList.Select(x => x.UserType).ToList();
|
||||
var userTypeEnum = emailNoticeUserList.Select(x => x.UserType).ToList();
|
||||
if (inDto.UserTypes != null)
|
||||
{
|
||||
userTypeEnum = inDto.UserTypes;
|
||||
}
|
||||
var crcUserList =new List<UserRole>(){ };
|
||||
var crcUserList = new List<UserRole>() { };
|
||||
if (userTypeEnum.Contains(UserTypeEnum.ClinicalResearchCoordinator))
|
||||
{
|
||||
crcUserList=await _trialSiteRepository.Where(x=>x.Id== inDto.SubjectVisit.TrialSiteId).SelectMany(x=>x.CRCUserList.Select(y => y.UserRole)).ToListAsync();
|
||||
crcUserList = await _trialSiteRepository.Where(x => x.Id == inDto.SubjectVisit.TrialSiteId).SelectMany(x => x.CRCUserList.Select(y => y.UserRole)).ToListAsync();
|
||||
}
|
||||
|
||||
if (inDto.UserTypes == null)
|
||||
@@ -307,7 +308,7 @@ public class ImageConsumer(
|
||||
}
|
||||
|
||||
|
||||
var ccList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.Copy && x.UserType != UserTypeEnum.ClinicalResearchCoordinator).Select(x => x.UserType).ToList();
|
||||
var ccList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.Copy && x.UserType != UserTypeEnum.ClinicalResearchCoordinator).Select(x => x.UserType).ToList();
|
||||
|
||||
ccUserList = trialUser.Where(x => ccList.Contains(x.UserTypeEnum)).ToList();
|
||||
|
||||
@@ -375,7 +376,7 @@ public class ImageConsumer(
|
||||
return (topicStr, htmlBodyStr);
|
||||
};
|
||||
|
||||
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, inDto.Scenario, messageToSend, emailConfigFunc);
|
||||
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(inDto.EmailNoticeConfig, messageToSend, emailConfigFunc);
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||
}
|
||||
@@ -404,11 +405,11 @@ public class ImageConsumer(
|
||||
// 设置邮件场景
|
||||
var scenario = EmailBusinessScenario.ReviewerSelection_PMApplyApproving; // 69
|
||||
|
||||
var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
|
||||
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable && t.IsAutoSend).FirstOrDefault();
|
||||
|
||||
if (trialEmailConfig != null)
|
||||
if (emailConfig != null)
|
||||
{
|
||||
await SendReviewerSelectionEmail(trialEmailConfig, scenario, trialId, enrollIdList);
|
||||
await SendReviewerSelectionEmail(emailConfig, trialId, enrollIdList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,18 +436,18 @@ public class ImageConsumer(
|
||||
// 设置邮件场景
|
||||
var scenario = EmailBusinessScenario.ReviewerSelection_SPMCPMApproval; // 70
|
||||
|
||||
var trialEmailConfig = _emailNoticeConfigrepository.Where(t =>t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault();
|
||||
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable && t.IsAutoSend).FirstOrDefault();
|
||||
|
||||
if (trialEmailConfig != null)
|
||||
if (emailConfig != null)
|
||||
{
|
||||
await SendReviewerSelectionEmail(trialEmailConfig, scenario, trialId, enrollIdList);
|
||||
await SendReviewerSelectionEmail(emailConfig, trialId, enrollIdList);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送阅片人筛选相关邮件的通用方法
|
||||
/// </summary>
|
||||
private async Task SendReviewerSelectionEmail(EmailNoticeConfig emailNoticeConfig, EmailBusinessScenario scenario, Guid trialId, List<Guid> enrollIdList)
|
||||
private async Task SendReviewerSelectionEmail(EmailNoticeConfig emailNoticeConfig, Guid trialId, List<Guid> enrollIdList)
|
||||
{
|
||||
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
|
||||
|
||||
@@ -454,7 +455,7 @@ public class ImageConsumer(
|
||||
var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId);
|
||||
|
||||
// 根据不同场景获取不同角色的用户
|
||||
var trialUser = await _trialUseRoleRepository.Where(x => x.TrialId == trialId &&!x.TrialUser.IsDeleted).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync();
|
||||
var trialUser = await _trialUseRoleRepository.Where(x => x.TrialId == trialId && !x.TrialUser.IsDeleted).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync();
|
||||
|
||||
// 根据场景确定收件人
|
||||
List<UserRole> toUserList = new List<UserRole>();
|
||||
@@ -508,7 +509,7 @@ public class ImageConsumer(
|
||||
return (topicStr, htmlBodyStr);
|
||||
};
|
||||
|
||||
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, scenario, messageToSend, emailConfigFunc);
|
||||
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailNoticeConfig, messageToSend, emailConfigFunc);
|
||||
|
||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user