修改一版
This commit is contained in:
@@ -48,7 +48,44 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||
}
|
||||
|
||||
|
||||
public class GetTrialEmailSetOutDto
|
||||
{
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发件箱账号
|
||||
/// </summary>
|
||||
public string EmailFromEmail { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 发件人
|
||||
/// </summary>
|
||||
public string EmailFromName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 密码/授权码
|
||||
/// </summary>
|
||||
public string EmailAuthorizationCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// SMTP服务器
|
||||
/// </summary>
|
||||
public string EmailSMTPServerAddress { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// SMTP端口
|
||||
/// </summary>
|
||||
public int? EmailSMTPServerPort { get; set; }
|
||||
}
|
||||
|
||||
public class SetTrialEmailInDto : GetTrialEmailSetOutDto
|
||||
{
|
||||
|
||||
}
|
||||
public class GetTrialEmailSetInDto
|
||||
{
|
||||
public Guid TrialId { get; set; }
|
||||
}
|
||||
|
||||
///<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
|
||||
public class TrialEmailNoticeConfigQuery
|
||||
|
||||
@@ -26,17 +26,79 @@ namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
|
||||
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
|
||||
public IRepository<VisitTask> _visitTaskRepository { get; }
|
||||
public IRepository<TrialUser> _trialUserRepository { get; }
|
||||
|
||||
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository, IRepository<TrialUser> trialUserRepository)
|
||||
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository,
|
||||
IRepository<Trial> trialRepository,
|
||||
IRepository<TrialUser> trialUserRepository)
|
||||
{
|
||||
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
|
||||
_visitTaskRepository = visitTaskRepository;
|
||||
this._trialRepository = trialRepository;
|
||||
_trialUserRepository = trialUserRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置项目邮箱
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<GetTrialEmailSetOutDto> GetTrialEmailSet(GetTrialEmailSetInDto inDto)
|
||||
{
|
||||
return await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new GetTrialEmailSetOutDto()
|
||||
{
|
||||
TrialId = inDto.TrialId,
|
||||
EmailAuthorizationCode = x.EmailAuthorizationCode,
|
||||
EmailSMTPServerAddress = x.EmailSMTPServerAddress,
|
||||
EmailFromEmail = x.EmailFromEmail,
|
||||
EmailFromName = x.EmailFromEmail,
|
||||
EmailSMTPServerPort = x.EmailSMTPServerPort
|
||||
|
||||
}).FirstNotNullAsync();
|
||||
}
|
||||
|
||||
|
||||
public async Task<IResponseOutput> SetTrialEmail(SetTrialEmailInDto inDto)
|
||||
{
|
||||
|
||||
await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() {
|
||||
|
||||
AuthorizationCode=inDto.EmailAuthorizationCode,
|
||||
FromEmail=inDto.EmailFromEmail,
|
||||
FileName=inDto.EmailFromName,
|
||||
SMTPServerAddress=inDto.EmailSMTPServerAddress,
|
||||
SMTPServerPort= inDto.EmailSMTPServerPort.Value,
|
||||
|
||||
});
|
||||
|
||||
await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial()
|
||||
{
|
||||
|
||||
EmailFromEmail = inDto.EmailFromEmail,
|
||||
EmailFromName = inDto.EmailFromName,
|
||||
EmailAuthorizationCode = inDto.EmailAuthorizationCode,
|
||||
EmailSMTPServerAddress = inDto.EmailSMTPServerAddress,
|
||||
EmailSMTPServerPort = inDto.EmailSMTPServerPort
|
||||
});
|
||||
|
||||
|
||||
|
||||
await _trialEmailNoticeConfigRepository.BatchUpdateNoTrackingAsync(x => x.TrialId == inDto.TrialId, x => new TrialEmailNoticeConfig()
|
||||
{
|
||||
AuthorizationCode = inDto.EmailAuthorizationCode,
|
||||
FromEmail = inDto.EmailFromEmail,
|
||||
FileName = inDto.EmailFromName,
|
||||
SMTPServerAddress = inDto.EmailSMTPServerAddress,
|
||||
SMTPServerPort = inDto.EmailSMTPServerPort.Value,
|
||||
});
|
||||
|
||||
await _trialRepository.SaveChangesAsync();
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 同步系统配置的文档到想项目中
|
||||
@@ -750,6 +812,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
|
||||
.WhereIf(inQuery.CriterionTypeEnum == null, t => t.CriterionTypeEnum == null)
|
||||
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
|
||||
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user