项目邮件配置修改--010
parent
c7b541dec6
commit
aaed933eb9
|
@ -144,6 +144,9 @@ public static class SendEmailHelper
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -609,6 +609,20 @@
|
|||
<param name="trialId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.GetSysEmailNoticeConfigList(IRaCIS.Core.Application.Contracts.EmailNoticeConfigQuery)">
|
||||
<summary>
|
||||
获取系统 邮件配置 勾选列表
|
||||
</summary>
|
||||
<param name="queryEmailNoticeConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.BatchAddSysEmailConfig(System.Collections.Generic.List{IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig})">
|
||||
<summary>
|
||||
批量勾选 传递列表每行数据,后台进行处理转换,建立关联关系
|
||||
</summary>
|
||||
<param name="batchAddList"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
|
||||
<summary> 指定资源Id,渲染Dicom检查的Jpeg预览图像 </summary>
|
||||
<param name="studyId"> Dicom检查的Id </param>
|
||||
|
@ -8074,30 +8088,30 @@
|
|||
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigQuery">
|
||||
<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit">
|
||||
<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.BusinessModuleEnum">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.BusinessModuleEnum">
|
||||
<summary> 业务模块 /// </summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.BusinessLevelEnum">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.BusinessLevelEnum">
|
||||
<summary> 业务层级 /// </summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailTypeEnum">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailTypeEnum">
|
||||
<summary> 邮件类型 /// </summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailUrgentEnum">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailUrgentEnum">
|
||||
<summary> 邮件加急类型 /// </summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailCron">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailCron">
|
||||
<summary> 定时周期 /// </summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailTopic">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailTopic">
|
||||
<summary> 邮件主题 /// </summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.AttachPath">
|
||||
<member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.AttachPath">
|
||||
<summary> 附件 /// </summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit">
|
||||
<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.ViewModel.SystemAnonymizationView">
|
||||
<summary> SystemAnonymizationView 列表视图模型 </summary>
|
||||
</member>
|
||||
|
|
|
@ -8,6 +8,11 @@ using IRaCIS.Core.Domain.Share;
|
|||
using Newtonsoft.Json;
|
||||
namespace IRaCIS.Core.Application.Contracts
|
||||
{
|
||||
public class TrialSelectEmailNoticeConfigView: EmailNoticeConfigView
|
||||
{
|
||||
public bool IsHaveSelected { get; set; }
|
||||
}
|
||||
|
||||
/// <summary> EmailNoticeConfigView 列表视图模型 </summary>
|
||||
public class EmailNoticeConfigView : EmailNoticeConfigAddOrEdit
|
||||
{
|
||||
|
@ -54,7 +59,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
public CriterionType? CriterionTypeEnum { get; set; }
|
||||
|
||||
|
||||
public Guid? TrialId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -24,9 +24,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
CreateMap<EmailNoticeUserType, EmailUserTypeDto>();
|
||||
|
||||
|
||||
|
||||
var trialId = Guid.Empty;
|
||||
CreateMap<EmailNoticeConfig, TrialSelectEmailNoticeConfigView>().IncludeBase<EmailNoticeConfig, EmailNoticeConfigView>()
|
||||
.ForMember(o => o.IsHaveSelected, t => t.MapFrom(u => u.TrialEmailNoticeConfigList.Any(c=>c.TrialId==trialId && c.SysEmailNoticeConfigId==u.Id)))
|
||||
;
|
||||
|
||||
CreateMap<EmailNoticeConfig, EmailNoticeConfigView>()
|
||||
.ForMember(t => t.EmailNoticeUserList, u => u.MapFrom(c => c.EmailNoticeUserTypeList));
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
/// <summary>
|
||||
/// SMTP端口
|
||||
/// </summary>
|
||||
public int? EmailSMTPServerPort { get; set; }
|
||||
public int EmailSMTPServerPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否配置过邮箱
|
||||
|
@ -120,39 +120,30 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
||||
}
|
||||
|
||||
///<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
|
||||
public class TrialEmailNoticeConfigAddOrEdit
|
||||
public class BatchAddTrialEmailNoticeConfig
|
||||
{
|
||||
|
||||
|
||||
|
||||
public Guid? Id { get; set; }
|
||||
|
||||
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
||||
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
public Guid? TrialReadingCriterionId { get; set; }
|
||||
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public string AuthorizationCode { get; set; } = string.Empty;
|
||||
|
||||
public string SMTPServerAddress { get; set; } = string.Empty;
|
||||
|
||||
public int SMTPServerPort { get; set; }
|
||||
|
||||
|
||||
public CriterionType CriterionTypeEnum { get; set; }
|
||||
|
||||
public string FromName { get; set; } = string.Empty;
|
||||
|
||||
public string FromEmail { get; set; } = string.Empty;
|
||||
|
||||
|
||||
public List<UserTypeEnum> ToUserTypeList { get; set; }
|
||||
public List<UserTypeEnum> CopyUserTypeList { get; set; }
|
||||
|
||||
|
||||
|
||||
public bool IsUrgent { get; set; }
|
||||
|
||||
public bool IsAutoSend { get; set; }
|
||||
|
||||
|
||||
|
@ -160,8 +151,6 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary> 业务模块 /// </summary>
|
||||
public int BusinessModuleEnum { get; set; }
|
||||
|
||||
|
@ -197,6 +186,26 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
public string EmailHtmlContent { get; set; } = string.Empty;
|
||||
public string EmailHtmlContentCN { get; set; } = string.Empty;
|
||||
|
||||
}
|
||||
|
||||
|
||||
///<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
|
||||
public class TrialEmailNoticeConfigAddOrEdit: BatchAddTrialEmailNoticeConfig
|
||||
{
|
||||
|
||||
public Guid? TrialReadingCriterionId { get; set; }
|
||||
|
||||
|
||||
public string AuthorizationCode { get; set; } = string.Empty;
|
||||
|
||||
public string SMTPServerAddress { get; set; } = string.Empty;
|
||||
|
||||
public int SMTPServerPort { get; set; }
|
||||
|
||||
|
||||
public string FromName { get; set; } = string.Empty;
|
||||
|
||||
public string FromEmail { get; set; } = string.Empty;
|
||||
|
||||
public List<Guid> BlackUserIdList { get; set; }
|
||||
|
||||
|
|
|
@ -0,0 +1,121 @@
|
|||
using IRaCIS.Core.Application.Helper;
|
||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using MailKit;
|
||||
using MimeKit;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Mail;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
|
||||
|
||||
|
||||
public class EmailSendService : BaseService
|
||||
{
|
||||
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
|
||||
|
||||
private readonly IRepository<EmailNoticeConfig> _emailNoticeConfigRepository;
|
||||
public EmailSendService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<EmailNoticeConfig> emailNoticeConfigRepository)
|
||||
{
|
||||
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
|
||||
_emailNoticeConfigRepository = emailNoticeConfigRepository;
|
||||
}
|
||||
|
||||
public async Task BaseTrialEmailConfigSendEmail(Guid trialId, CommonDocumentBusinessScenario businessScenario, Guid? trialReadingCriterionId, Guid? subjectId)
|
||||
{
|
||||
|
||||
//找到配置
|
||||
|
||||
|
||||
var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true)
|
||||
.Include(t => t.TrialEmailNoticeUserList).Include(t => t.TrialEmailBlackUserList).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
if (trialEmailConfig == null || trialEmailConfig.IsAutoSend == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var sendEmailConfig = new SMTPEmailConfig();
|
||||
|
||||
//收件人 如果是CRC CRA 要按照中心发送
|
||||
var toUserTypeEnumList = trialEmailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.To).Select(c => c.UserType).ToList();
|
||||
|
||||
var copyUserTypeEnumList = trialEmailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.Copy).Select(c => c.UserType).ToList();
|
||||
|
||||
var allUserTypeEnumList= toUserTypeEnumList.Union(copyUserTypeEnumList).Distinct().ToList();
|
||||
|
||||
var allUserList= _repository.Where<TrialUser>(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName ,t.User.UserTypeEnum }).ToList();
|
||||
|
||||
|
||||
var toUserList = allUserList.Where(t => toUserTypeEnumList.Contains(t.UserTypeEnum)).ToList();
|
||||
|
||||
if(subjectId!=null)
|
||||
{
|
||||
toUserList = _repository.Where<TrialSiteUser>(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.User.UserTypeEnum) && t.TrialSite.SubjectList.Any(c=>c.Id==subjectId)).Select(t => new { t.User.EMail, t.User.FullName, t.User.UserTypeEnum }).ToList();
|
||||
}
|
||||
|
||||
|
||||
var copyUserList = allUserList.Where(t => copyUserTypeEnumList.Contains(t.UserTypeEnum)).ToList();
|
||||
|
||||
|
||||
if (toUserList.Count() == 0)
|
||||
{
|
||||
//---没有收件人,无法发送邮件
|
||||
throw new BusinessValidationFailedException(_localizer["TrialEmailN_NoRecipient"]);
|
||||
}
|
||||
|
||||
|
||||
if (trialEmailConfig.FromEmail.Contains("@") && !string.IsNullOrEmpty(trialEmailConfig.FromEmail))
|
||||
{
|
||||
|
||||
sendEmailConfig.FromEmailAddress = new MimeKit.MailboxAddress(trialEmailConfig.FromName, trialEmailConfig.FromEmail);
|
||||
sendEmailConfig.AuthorizationCode = trialEmailConfig.AuthorizationCode;
|
||||
sendEmailConfig.UserName = trialEmailConfig.FromEmail;
|
||||
|
||||
sendEmailConfig.Host = trialEmailConfig.SMTPServerAddress;
|
||||
sendEmailConfig.Port = trialEmailConfig.SMTPServerPort;
|
||||
}
|
||||
else
|
||||
{
|
||||
//---项目发件邮箱配置有误,请核实
|
||||
throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidEmailConfig"]);
|
||||
}
|
||||
|
||||
foreach (var item in toUserList)
|
||||
{
|
||||
|
||||
if (item.EMail.Contains("@") && !string.IsNullOrEmpty(item.EMail))
|
||||
{
|
||||
|
||||
sendEmailConfig.ToMailAddressList.Add(new MimeKit.MailboxAddress(item.FullName, item.EMail));
|
||||
|
||||
}
|
||||
}
|
||||
foreach (var item in copyUserList)
|
||||
{
|
||||
|
||||
if (item.EMail.Contains("@") && !string.IsNullOrEmpty(item.EMail))
|
||||
{
|
||||
|
||||
sendEmailConfig.CopyToMailAddressList.Add(new MimeKit.MailboxAddress(item.FullName, item.EMail));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -33,11 +33,12 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
|
||||
|
||||
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
private readonly IRepository<TrialEmailBlackUser> _trialEmailBlackUserRepository;
|
||||
|
||||
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
|
||||
private readonly IRepository<EmailNoticeConfig> _emailNoticeConfigRepository;
|
||||
|
||||
|
||||
public IRepository<VisitTask> _visitTaskRepository { get; }
|
||||
public IRepository<TrialUser> _trialUserRepository { get; }
|
||||
|
@ -46,9 +47,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
public IRepository<SubjectVisit> _subjectVisitRepository { get; }
|
||||
|
||||
|
||||
|
||||
|
||||
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository,
|
||||
IRepository<Trial> trialRepository,
|
||||
IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository, IRepository<TrialEmailBlackUser> trialEmailBlackUserRepository)
|
||||
IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository,
|
||||
Repository<SubjectVisit> subjectVisitRepository, IRepository<TrialEmailBlackUser> trialEmailBlackUserRepository, IRepository<EmailNoticeConfig> emailNoticeConfigRepository)
|
||||
{
|
||||
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
|
||||
_visitTaskRepository = visitTaskRepository;
|
||||
|
@ -59,6 +64,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
_subjectVisitRepository = subjectVisitRepository;
|
||||
_trialEmailBlackUserRepository = trialEmailBlackUserRepository;
|
||||
_emailNoticeConfigRepository = emailNoticeConfigRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -97,7 +103,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
FromEmail = inDto.EmailFromEmail,
|
||||
FromName = inDto.EmailFromName,
|
||||
SMTPServerAddress = inDto.EmailSMTPServerAddress,
|
||||
SMTPServerPort = inDto.EmailSMTPServerPort.Value,
|
||||
SMTPServerPort = inDto.EmailSMTPServerPort,
|
||||
TrialId = inDto.TrialId,
|
||||
});
|
||||
|
||||
|
@ -120,7 +126,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
FromEmail = inDto.EmailFromEmail,
|
||||
FromName = inDto.EmailFromName,
|
||||
SMTPServerAddress = inDto.EmailSMTPServerAddress,
|
||||
SMTPServerPort = inDto.EmailSMTPServerPort.Value,
|
||||
SMTPServerPort = inDto.EmailSMTPServerPort,
|
||||
});
|
||||
|
||||
await _trialRepository.SaveChangesAsync();
|
||||
|
@ -1518,6 +1524,83 @@ namespace IRaCIS.Core.Application.Service
|
|||
return await query.ToListAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取系统 邮件配置 勾选列表
|
||||
/// </summary>
|
||||
/// <param name="queryEmailNoticeConfig"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig)
|
||||
{
|
||||
var emailNoticeConfigQueryable = _emailNoticeConfigRepository
|
||||
.WhereIf(queryEmailNoticeConfig.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryEmailNoticeConfig.BusinessScenarioEnum)
|
||||
.WhereIf(queryEmailNoticeConfig.IsReturnRequired != null, t => t.IsReturnRequired == queryEmailNoticeConfig.IsReturnRequired)
|
||||
.WhereIf(queryEmailNoticeConfig.IsEnable != null, t => t.IsEnable == queryEmailNoticeConfig.IsEnable)
|
||||
|
||||
.ProjectTo<TrialSelectEmailNoticeConfigView>(_mapper.ConfigurationProvider, new { trialId = queryEmailNoticeConfig.TrialId });
|
||||
|
||||
return await emailNoticeConfigQueryable.ToPagedListAsync(queryEmailNoticeConfig.PageIndex, queryEmailNoticeConfig.PageSize, queryEmailNoticeConfig.SortField, queryEmailNoticeConfig.Asc);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量勾选 传递列表每行数据,后台进行处理转换,建立关联关系
|
||||
/// </summary>
|
||||
/// <param name="batchAddList"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IResponseOutput> BatchAddSysEmailConfig(List<BatchAddTrialEmailNoticeConfig> batchAddList)
|
||||
{
|
||||
|
||||
var first = batchAddList.First();
|
||||
var trialId = first.TrialId;
|
||||
|
||||
var emailConfig = await _trialRepository.Where(t => t.Id == trialId).Select(x => new
|
||||
{
|
||||
TrialId = x.Id,
|
||||
EmailAuthorizationCode = x.EmailAuthorizationCode,
|
||||
EmailSMTPServerAddress = x.EmailSMTPServerAddress,
|
||||
EmailFromEmail = x.EmailFromEmail,
|
||||
EmailFromName = x.EmailFromName,
|
||||
IsConfigureEmail = x.IsConfigureEmail,
|
||||
EmailSMTPServerPort = x.EmailSMTPServerPort
|
||||
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
var list = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync();
|
||||
|
||||
|
||||
var addList = _mapper.Map<List<TrialEmailNoticeConfig>>(batchAddList);
|
||||
|
||||
|
||||
foreach (var item in addList)
|
||||
{
|
||||
item.SysEmailNoticeConfigId = item.Id;
|
||||
item.Id = Guid.Empty;
|
||||
|
||||
item.AuthorizationCode = emailConfig.EmailAuthorizationCode;
|
||||
item.FromEmail = emailConfig.EmailFromEmail;
|
||||
item.SMTPServerAddress = emailConfig.EmailSMTPServerAddress;
|
||||
item.FromName=emailConfig.EmailFromName;
|
||||
item.SMTPServerPort = emailConfig.EmailSMTPServerPort;
|
||||
|
||||
|
||||
item.TrialReadingCriterionId = list.FirstOrDefault(t => t.CriterionType == item.CriterionTypeEnum)?.TrialReadingCriterionId;
|
||||
|
||||
item.TrialEmailNoticeUserList.AddRange(batchAddList.Where(t => t.Id == item.SysEmailNoticeConfigId)
|
||||
.SelectMany(t => t.ToUserTypeList).Select(t => new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserType = t }));
|
||||
|
||||
item.TrialEmailNoticeUserList.AddRange(batchAddList.Where(t => t.Id == item.SysEmailNoticeConfigId)
|
||||
.SelectMany(t => t.CopyUserTypeList).Select(t => new TrialEmailNoticeUser() { EmailUserType = EmailUserType.Copy, UserType = t }));
|
||||
|
||||
|
||||
await _trialEmailNoticeConfigRepository.AddAsync(item);
|
||||
|
||||
}
|
||||
|
||||
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
|
@ -1534,6 +1617,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
return await trialEmailNoticeConfigQueryable.ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||
public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig)
|
||||
{
|
||||
|
@ -1609,6 +1693,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
||||
{
|
||||
|
||||
|
|
|
@ -18,6 +18,9 @@ namespace IRaCIS.Core.Domain.Models
|
|||
[Table("EmailNoticeConfig")]
|
||||
public class EmailNoticeConfig : Entity, IAuditUpdate, IAuditAdd,ISoftDelete
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TrialEmailNoticeConfig> TrialEmailNoticeConfigList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<EmailNoticeUserType> EmailNoticeUserTypeList { get; set; }
|
||||
public string Code { get; set; } = String.Empty;
|
||||
|
|
|
@ -76,10 +76,12 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public string EmailHtmlContent { get; set; } = string.Empty;
|
||||
public string EmailHtmlContentCN { get; set; } = string.Empty;
|
||||
|
||||
|
||||
|
||||
|
||||
[JsonIgnore]
|
||||
|
||||
public EmailNoticeConfig SysEmailNoticeConfig { get; set; }
|
||||
public Guid? SysEmailNoticeConfigId { get; set; }
|
||||
|
||||
|
||||
|
|
|
@ -382,7 +382,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// <summary>
|
||||
/// SMTP端口
|
||||
/// </summary>
|
||||
public int? EmailSMTPServerPort { get; set; }
|
||||
public int EmailSMTPServerPort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否配置过邮箱
|
||||
|
|
Loading…
Reference in New Issue