修改邮件发送枚举--025
parent
eee828ca46
commit
daaf4540a4
|
@ -168,14 +168,14 @@ namespace IRaCIS.Application.Services.BackGroundJob
|
||||||
switch (task.BusinessScenarioEnum)
|
switch (task.BusinessScenarioEnum)
|
||||||
{
|
{
|
||||||
|
|
||||||
case CommonDocumentBusinessScenario.QCTask:
|
case EmailBusinessScenario.QCTask:
|
||||||
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQCTaskEmailAsync(task.TrialId), task.EmailCron, task.Code);
|
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQCTaskEmailAsync(task.TrialId), task.EmailCron);
|
||||||
break;
|
break;
|
||||||
case CommonDocumentBusinessScenario.QCQuestion:
|
case EmailBusinessScenario.QCQuestion:
|
||||||
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialQCQuestionEmailAsync(task.TrialId), task.EmailCron, task.Code);
|
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialQCQuestionEmailAsync(task.TrialId), task.EmailCron);
|
||||||
break;
|
break;
|
||||||
case CommonDocumentBusinessScenario.ImageQuestion:
|
case EmailBusinessScenario.ImageQuestion:
|
||||||
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQuestionAsync(task.TrialId), task.EmailCron, task.Code);
|
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQuestionAsync(task.TrialId), task.EmailCron);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//case CommonDocumentBusinessScenario.EnrollConfirmed:
|
//case CommonDocumentBusinessScenario.EnrollConfirmed:
|
||||||
|
|
|
@ -100,7 +100,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
[NotDefault]
|
[NotDefault]
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; }
|
public EmailBusinessScenario? BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
//public CriterionType? CriterionTypeEnum { get; set; }
|
//public CriterionType? CriterionTypeEnum { get; set; }
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
|
||||||
public Guid TrialReadingCriterionId { get; set; }
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
public EmailBusinessScenario BusinessScenarioEnum { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class BatchAddTrialEmailNoticeConfig
|
public class BatchAddTrialEmailNoticeConfig
|
||||||
|
@ -127,7 +127,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
|
||||||
public Guid? Id { get; set; }
|
public Guid? Id { get; set; }
|
||||||
|
|
||||||
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
public EmailBusinessScenario BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
public string Code { get; set; } = string.Empty;
|
public string Code { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCTask, topicAndHtmlFunc);
|
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCQuestion, topicAndHtmlFunc);
|
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCQuestion, topicAndHtmlFunc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.ImageQuestion, topicAndHtmlFunc);
|
await SendTrialEmailAsync(trialId, EmailBusinessScenario.ImageQuestion, topicAndHtmlFunc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,11 +202,11 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(info.TrialId, CommonDocumentBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc);
|
await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task SendTrialEmailAsync(Guid trialId, CommonDocumentBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null)
|
public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null)
|
||||||
{
|
{
|
||||||
//找到配置
|
//找到配置
|
||||||
var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true)
|
var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true)
|
||||||
|
|
|
@ -159,8 +159,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
var confirmedCriterionTypeList = list.Select(t => (CriterionType?)t.CriterionType).ToList();
|
var confirmedCriterionTypeList = list.Select(t => (CriterionType?)t.CriterionType).ToList();
|
||||||
|
|
||||||
var docmentList = _repository.Where<CommonDocument>(t => t.BusinessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed || t.BusinessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)
|
var docmentList = _repository.Where<TrialEmailNoticeConfig>(t => t.BusinessScenarioEnum == EmailBusinessScenario.EnrollConfirmed || t.BusinessScenarioEnum == EmailBusinessScenario.PDConfirmed)
|
||||||
.Where(t => (confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)) || t.CriterionTypeEnum == null).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum }).ToList();
|
//.Where(t => (confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)) || t.CriterionTypeEnum == null).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum })
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var item in docmentList)
|
foreach (var item in docmentList)
|
||||||
|
@ -190,15 +192,15 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public async Task CommonBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm)
|
public async Task CommonBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm)
|
||||||
{
|
{
|
||||||
#region 区分场景
|
#region 区分场景
|
||||||
CommonDocumentBusinessScenario businessScenarioEnum;
|
EmailBusinessScenario businessScenarioEnum;
|
||||||
|
|
||||||
if (isEnrollment != null && isPDConfirm == null)
|
if (isEnrollment != null && isPDConfirm == null)
|
||||||
{
|
{
|
||||||
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed;
|
businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed;
|
||||||
}
|
}
|
||||||
else /*if (isEnrollment == null && isPDConfirm != null)*/
|
else /*if (isEnrollment == null && isPDConfirm != null)*/
|
||||||
{
|
{
|
||||||
businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed;
|
businessScenarioEnum = EmailBusinessScenario.PDConfirmed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -305,7 +307,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed)
|
if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
|
||||||
{
|
{
|
||||||
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
||||||
|
|
||||||
|
@ -321,7 +323,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /*if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)*/
|
else /*if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)*/
|
||||||
{
|
{
|
||||||
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
||||||
|
|
||||||
|
@ -414,7 +416,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public async Task<string> BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isHandSend, EmailStoreSendMode emailStoreMode, string sendFileRelativePath)
|
public async Task<string> BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isHandSend, EmailStoreSendMode emailStoreMode, string sendFileRelativePath)
|
||||||
{
|
{
|
||||||
|
|
||||||
CommonDocumentBusinessScenario? businessScenarioEnum = null;
|
EmailBusinessScenario? businessScenarioEnum = null;
|
||||||
|
|
||||||
#region 任务关联的项目配置 标准信息及配置,subject 信息
|
#region 任务关联的项目配置 标准信息及配置,subject 信息
|
||||||
var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new
|
var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new
|
||||||
|
@ -482,7 +484,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
//入组确认场景
|
//入组确认场景
|
||||||
if (taskInfo.IsEnrollmentConfirm == true && taskInfo.IsEnrollementQualificationConfirm == true && taskInfo.IsBaseline == true)
|
if (taskInfo.IsEnrollmentConfirm == true && taskInfo.IsEnrollementQualificationConfirm == true && taskInfo.IsBaseline == true)
|
||||||
{
|
{
|
||||||
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed;
|
businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -491,7 +493,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
(taskInfo.PDState == PDStateEnum.PDProgress && taskInfo.SourceSubjectVisitId != null) ||
|
(taskInfo.PDState == PDStateEnum.PDProgress && taskInfo.SourceSubjectVisitId != null) ||
|
||||||
(taskInfo.SouceReadModuleId != null && taskInfo.MoudulePDState == PDStateEnum.PDProgress))
|
(taskInfo.SouceReadModuleId != null && taskInfo.MoudulePDState == PDStateEnum.PDProgress))
|
||||||
{
|
{
|
||||||
businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed;
|
businessScenarioEnum = EmailBusinessScenario.PDConfirmed;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -612,7 +614,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
#region 不同场景 Tile 设置
|
#region 不同场景 Tile 设置
|
||||||
|
|
||||||
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed)
|
if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
|
||||||
{
|
{
|
||||||
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
||||||
|
|
||||||
|
@ -627,7 +629,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)
|
else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
|
||||||
{
|
{
|
||||||
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
|
||||||
|
|
||||||
|
@ -659,7 +661,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
//入组确认 根据每个标准配置的是否自动发送,发送邮件与否
|
//入组确认 根据每个标准配置的是否自动发送,发送邮件与否
|
||||||
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed)
|
if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
|
||||||
{
|
{
|
||||||
if (await _repository.Where<ReadingTableQuestionAnswer>().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() &&
|
if (await _repository.Where<ReadingTableQuestionAnswer>().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() &&
|
||||||
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion))
|
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion))
|
||||||
|
@ -704,7 +706,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)
|
else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@ -1073,7 +1075,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
//找到入组确认 或者Pd 进展 已生成任务的 访视
|
//找到入组确认 或者Pd 进展 已生成任务的 访视
|
||||||
var subjectVisitList = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId & t.CheckState == CheckStateEnum.CVPassed && (t.IsEnrollmentConfirm == true || t.PDState == PDStateEnum.PDProgress)).ToListAsync();
|
var subjectVisitList = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId & t.CheckState == CheckStateEnum.CVPassed && (t.IsEnrollmentConfirm == true || t.PDState == PDStateEnum.PDProgress)).ToListAsync();
|
||||||
|
|
||||||
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed)
|
if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (trialConfig.IsEnrollementQualificationConfirm == false)
|
if (trialConfig.IsEnrollementQualificationConfirm == false)
|
||||||
|
@ -1140,7 +1142,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)
|
else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (trialConfig.IsPDProgressView == false)
|
if (trialConfig.IsPDProgressView == false)
|
||||||
|
|
|
@ -37,21 +37,26 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
public enum CommonDocumentBusinessScenario
|
public enum CommonDocumentBusinessScenario
|
||||||
{
|
{
|
||||||
|
|
||||||
EnrollConfirmed = 1,
|
|
||||||
|
|
||||||
PDConfirmed = 2,
|
|
||||||
|
|
||||||
Trial=3,
|
Trial=3,
|
||||||
|
|
||||||
Reviewer=4,
|
Reviewer=4,
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
QCTask=5,
|
public enum EmailBusinessScenario
|
||||||
|
{
|
||||||
|
EnrollConfirmed = 1,
|
||||||
|
|
||||||
QCQuestion=6,
|
PDConfirmed = 2,
|
||||||
|
|
||||||
|
QCTask = 5,
|
||||||
|
|
||||||
|
QCQuestion = 6,
|
||||||
|
|
||||||
ImageQuestion = 7,
|
ImageQuestion = 7,
|
||||||
|
|
||||||
ClinicalDataQuestion=8,
|
ClinicalDataQuestion = 8,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public bool IsAutoSend { get; set; }
|
public bool IsAutoSend { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
public EmailBusinessScenario BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
public CriterionType? CriterionTypeEnum { get; set; }
|
public CriterionType? CriterionTypeEnum { get; set; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue