修改邮件--031
parent
a719ca752f
commit
1e4ee0a5e9
|
@ -79,12 +79,7 @@
|
||||||
<PackageReference Include="LogDashboard" Version="1.4.8" />
|
<PackageReference Include="LogDashboard" Version="1.4.8" />
|
||||||
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="11.0.0" />
|
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="11.0.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.10" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.10" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.1" />
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.1" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
|
|
||||||
<PackageReference Include="Quartz.Extensions.DependencyInjection" Version="3.6.2" />
|
<PackageReference Include="Quartz.Extensions.DependencyInjection" Version="3.6.2" />
|
||||||
<PackageReference Include="Quartz.Extensions.Hosting" Version="3.6.2" />
|
<PackageReference Include="Quartz.Extensions.Hosting" Version="3.6.2" />
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="6.0.1" />
|
<PackageReference Include="Serilog.AspNetCore" Version="6.0.1" />
|
||||||
|
|
|
@ -84,27 +84,27 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
if (isEnrollment == true)
|
if (isEnrollment == true)
|
||||||
{
|
{
|
||||||
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
{
|
{
|
||||||
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode);
|
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode);
|
||||||
|
|
||||||
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
||||||
_userInfo.UserName, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr);
|
_userInfo.UserName, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr);
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr,null);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc);
|
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
{
|
{
|
||||||
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName);
|
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName);
|
||||||
|
|
||||||
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
||||||
_userInfo.UserName, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName, resultStr);
|
_userInfo.UserName, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName, resultStr);
|
||||||
|
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr,null);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc);
|
await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc);
|
||||||
|
@ -151,12 +151,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
if (sendStat != null && (sendStat.ToBeClaimedCount > 0 || sendStat.ToBeReviewedCount > 0))
|
if (sendStat != null && (sendStat.ToBeClaimedCount > 0 || sendStat.ToBeReviewedCount > 0))
|
||||||
{
|
{
|
||||||
|
|
||||||
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
{
|
{
|
||||||
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
|
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
|
||||||
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
||||||
user.FullName, DateTime.Now, sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
user.FullName, DateTime.Now, sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr, userId);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc);
|
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc);
|
||||||
|
@ -201,13 +201,13 @@ namespace IRaCIS.Core.Application.Service
|
||||||
if (sendStat != null && (sendStat.ToBeDealedCount > 0 || sendStat.ReUploadTobeDealedCount > 0))
|
if (sendStat != null && (sendStat.ToBeDealedCount > 0 || sendStat.ReUploadTobeDealedCount > 0))
|
||||||
{
|
{
|
||||||
|
|
||||||
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
{
|
{
|
||||||
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
|
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
|
||||||
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
||||||
|
|
||||||
user.FullName, DateTime.Now, sendStat.ToBeDealedCount- sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
user.FullName, DateTime.Now, sendStat.ToBeDealedCount- sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr, userId);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCQuestion, topicAndHtmlFunc);
|
await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCQuestion, topicAndHtmlFunc);
|
||||||
|
@ -249,12 +249,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
if (sendStat != null && (sendStat.ToBeDealedCount > 0))
|
if (sendStat != null && (sendStat.ToBeDealedCount > 0))
|
||||||
{
|
{
|
||||||
|
|
||||||
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc = trialEmailConfig =>
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr,Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
{
|
{
|
||||||
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
|
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo);
|
||||||
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
||||||
user.FullName, DateTime.Now, sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
user.FullName, DateTime.Now, sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr,userId);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(trialId, EmailBusinessScenario.ImageQuestion, topicAndHtmlFunc);
|
await SendTrialEmailAsync(trialId, EmailBusinessScenario.ImageQuestion, topicAndHtmlFunc);
|
||||||
|
@ -269,12 +269,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
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();
|
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 =>
|
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr,Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||||
{
|
{
|
||||||
var topicStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, info.ResearchProgramNo,info.Code,info.VisitName);
|
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,
|
var htmlBodyStr = string.Format(_userInfo.IsEn_Us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN,
|
||||||
_userInfo.UserName, info.ResearchProgramNo, info.Code, info.VisitName,_userInfo.UserName,content, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
_userInfo.UserName, info.ResearchProgramNo, info.Code, info.VisitName,_userInfo.UserName,content, _SystemEmailSendConfig.CurrentValue.SiteUrl);
|
||||||
return (topicStr, htmlBodyStr);
|
return (topicStr, htmlBodyStr,null);
|
||||||
};
|
};
|
||||||
|
|
||||||
await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc);
|
await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc);
|
||||||
|
@ -283,7 +283,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario 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,Guid? onlyToUserId)> 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)
|
||||||
|
@ -299,7 +299,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
var sendEmailConfig = new SMTPEmailConfig();
|
var sendEmailConfig = new SMTPEmailConfig();
|
||||||
|
|
||||||
var (topicStr, htmlBodyStr) = topicAndHtmlFunc(trialEmailConfig);
|
var (topicStr, htmlBodyStr, onlyToUserId) = topicAndHtmlFunc(trialEmailConfig);
|
||||||
|
|
||||||
|
|
||||||
sendEmailConfig.TopicDescription = topicStr;
|
sendEmailConfig.TopicDescription = topicStr;
|
||||||
|
@ -331,6 +331,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
var copyUserList = allUserList.Where(t => copyUserTypeEnumList.Contains(t.UserTypeEnum)).Where(t => !blackUserIdList.Contains(t.UserId)).ToList();
|
var copyUserList = allUserList.Where(t => copyUserTypeEnumList.Contains(t.UserTypeEnum)).Where(t => !blackUserIdList.Contains(t.UserId)).ToList();
|
||||||
|
|
||||||
|
if(onlyToUserId!=null)
|
||||||
|
{
|
||||||
|
copyUserList.Where(t=>t.UserId == onlyToUserId).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
if (toUserList.Count() == 0)
|
if (toUserList.Count() == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,10 +22,6 @@
|
||||||
<PackageReference Include="EntityFrameworkCore.Exceptions.SqlServer" Version="6.0.3.1" />
|
<PackageReference Include="EntityFrameworkCore.Exceptions.SqlServer" Version="6.0.3.1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.3">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="7.0.2" />
|
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="7.0.2" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
|
||||||
<PackageReference Include="EntityFrameworkCore.Projectables" Version="2.3.0" />
|
<PackageReference Include="EntityFrameworkCore.Projectables" Version="2.3.0" />
|
||||||
|
|
Loading…
Reference in New Issue