项目邮件配置修改--017

Test_Study_Net8
hang 2023-08-23 09:46:29 +08:00
parent 4338481f9f
commit 6c6b18818a
1 changed files with 30 additions and 15 deletions

View File

@ -1,4 +1,5 @@
using IRaCIS.Core.Application.Contracts; using DocumentFormat.OpenXml.Spreadsheet;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Models;
@ -19,10 +20,14 @@ namespace IRaCIS.Core.Application.Service
public interface IEmailSendService public interface IEmailSendService
{ {
Task SendClinicalDataQuestionAsync(Guid visitTaskId, string content);
Task SendTrialImageQCTaskEmailAsync(Guid trialId);
Task SendTrialQCQuestionEmailAsync(Guid trialId);
Task SendTrialImageQuestionAsync(Guid trialId);
} }
public class EmailSendService : BaseService public class EmailSendService : BaseService, IEmailSendService
{ {
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository; private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
@ -41,7 +46,7 @@ namespace IRaCIS.Core.Application.Service
/// </summary> /// </summary>
/// <param name="trialId"></param> /// <param name="trialId"></param>
/// <returns></returns> /// <returns></returns>
public async Task SendTrialImageQCTaskEmail(Guid trialId) public async Task SendTrialImageQCTaskEmailAsync(Guid trialId)
{ {
var trialInfo = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault(); var trialInfo = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault();
@ -81,7 +86,7 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCQuestion, topicAndHtmlFunc); await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCTask, topicAndHtmlFunc);
} }
} }
} }
@ -91,7 +96,7 @@ namespace IRaCIS.Core.Application.Service
/// </summary> /// </summary>
/// <param name="trialId"></param> /// <param name="trialId"></param>
/// <returns></returns> /// <returns></returns>
public async Task SendTrialQCQuestionEmail(Guid trialId) public async Task SendTrialQCQuestionEmailAsync(Guid trialId)
{ {
var trialInfo = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault(); var trialInfo = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault();
@ -139,7 +144,7 @@ namespace IRaCIS.Core.Application.Service
/// </summary> /// </summary>
/// <param name="trialId"></param> /// <param name="trialId"></param>
/// <returns></returns> /// <returns></returns>
public async Task SendTrialImageQuestino(Guid trialId) public async Task SendTrialImageQuestionAsync(Guid trialId)
{ {
var trialInfo = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault(); var trialInfo = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault();
@ -174,16 +179,26 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCQuestion, topicAndHtmlFunc); await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.ImageQuestion, topicAndHtmlFunc);
} }
} }
} }
//临床数据质询 //临床数据质询
public async Task SendClinicalDataQuestion(Guid trialId,Guid visitTaskId,string content) public async Task SendClinicalDataQuestionAsync(Guid visitTaskId, string content)
{ {
var info = await _repository.Where<VisitTask>(t => t.Id == visitTaskId, ignoreQueryFilters: true).Select(t => new { t.TrialId, t.Trial.ResearchProgramNo, t.Trial.TrialCode, t.SourceSubjectVisit.VisitName, t.Subject.Code }).FirstOrDefaultAsync();
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
{
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, info.ResearchProgramNo,info.Code,info.VisitName);
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, info.ResearchProgramNo, info.Code, info.VisitName,_userInfo.UserName,content);
return (topicStr, htmlBodyStr);
};
await SendTrialEmailAsync(info.TrialId, CommonDocumentBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc);
} }