From e540c32bce4cb868cec644e79a226befabe8e981 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 18 May 2022 16:48:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=AE=E4=BB=B6=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common => Helper}/ExcelExportHelper.cs | 0 .../Helper/SendEmailHelper.cs | 35 ++++ .../Service/Common/MailService.cs | 173 +++++++----------- .../Service/QC/QCOperationService.cs | 5 +- .../SiteSurvey/TrialSiteSurveyService.cs | 33 +--- .../TrialSiteUser/TrialExternalUserService.cs | 17 +- 6 files changed, 118 insertions(+), 145 deletions(-) rename IRaCIS.Core.Application/{Service/Common => Helper}/ExcelExportHelper.cs (100%) create mode 100644 IRaCIS.Core.Application/Helper/SendEmailHelper.cs diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportHelper.cs b/IRaCIS.Core.Application/Helper/ExcelExportHelper.cs similarity index 100% rename from IRaCIS.Core.Application/Service/Common/ExcelExportHelper.cs rename to IRaCIS.Core.Application/Helper/ExcelExportHelper.cs diff --git a/IRaCIS.Core.Application/Helper/SendEmailHelper.cs b/IRaCIS.Core.Application/Helper/SendEmailHelper.cs new file mode 100644 index 000000000..30eecfbbc --- /dev/null +++ b/IRaCIS.Core.Application/Helper/SendEmailHelper.cs @@ -0,0 +1,35 @@ +using MailKit; +using MailKit.Security; +using MimeKit; + + +namespace IRaCIS.Core.Application.Helper; + +public static class SendEmailHelper +{ + + + public static async Task SendEmailAsync(MimeMessage messageToSend, EventHandler? messageSentSuccess = null) + { + using (var smtp = new MailKit.Net.Smtp.SmtpClient()) + { + if (messageSentSuccess != null) + { + smtp.MessageSent += messageSentSuccess; + } + + + smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; + + await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); + + await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); + + await smtp.SendAsync(messageToSend); + + await smtp.DisconnectAsync(true); + + } + } +} + diff --git a/IRaCIS.Core.Application/Service/Common/MailService.cs b/IRaCIS.Core.Application/Service/Common/MailService.cs index 855f51cbe..abc1e7098 100644 --- a/IRaCIS.Core.Application/Service/Common/MailService.cs +++ b/IRaCIS.Core.Application/Service/Common/MailService.cs @@ -3,6 +3,8 @@ using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; using MailKit.Security; using MimeKit; +using IRaCIS.Core.Application.Helper; +using MailKit; namespace IRaCIS.Application.Services { @@ -10,11 +12,11 @@ namespace IRaCIS.Application.Services { Task SendMail(Guid userId, string userName, string emailAddress, int verificationCode); - Task AnolymousSendEmail(string researchProgramNo ,string emailAddress, int verificationCode); + Task AnolymousSendEmail(string researchProgramNo, string emailAddress, int verificationCode); Task SendMailEditEmail(Guid userId, string userName, string emailAddress, int verificationCode); - Task AnolymousSendEmailForResetAccount( string emailAddress, int verificationCode); + Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode); } public class MailVerificationService : IMailVerificationService @@ -52,42 +54,35 @@ namespace IRaCIS.Application.Services 此邮件属系统自动发出,无需回复。 祝您顺利!/Best Regards. - 上海展影医疗科技有限公司" + 上海展影医疗科技有限公司" }; - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) - { - smtp.MessageSent += (sender, args) => - { - // args.Response - var code = verificationCode.ToString(); - _ = _verificationCodeRepository.AddAsync(new VerificationCode() - { - CodeType = 0, - HasSend = true, - Code = code, - UserId = userId, - ExpirationTime = DateTime.Now.AddMinutes(3) - }).Result; - _ = _verificationCodeRepository.SaveChangesAsync().Result; - }; - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; + EventHandler sucessHandle = (sender, args) => + { + // args.Response + var code = verificationCode.ToString(); + _ = _verificationCodeRepository.AddAsync(new VerificationCode() + { + CodeType = 0, + HasSend = true, + Code = code, + UserId = userId, + ExpirationTime = DateTime.Now.AddMinutes(3) + }).Result; + _ = _verificationCodeRepository.SaveChangesAsync().Result; - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); + }; - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - await smtp.SendAsync(messageToSend); + await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle); - await smtp.DisconnectAsync(true); - } } //不登录 通过邮箱重置密码 - public async Task AnolymousSendEmailForResetAccount( string emailAddress, int verificationCode) + public async Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode) { var messageToSend = new MimeMessage(); //发件地址 @@ -107,40 +102,30 @@ namespace IRaCIS.Application.Services 祝您顺利!/Best Regards. 上海展影医疗科技有限公司" }; - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) - { - smtp.MessageSent += (sender, args) => - { - // args.Response - var code = verificationCode.ToString(); - _ = _verificationCodeRepository.AddAsync(new VerificationCode() - { - CodeType = Core.Domain.Share.VerifyType.Email, - HasSend = true, - Code = code, - UserId = Guid.Empty,//此时不知道用户 - EmailOrPhone = emailAddress, - ExpirationTime = DateTime.Now.AddMinutes(3) - }).Result; - _ = _verificationCodeRepository.SaveChangesAsync().Result; - }; + EventHandler sucessHandle = (sender, args) => + { + var code = verificationCode.ToString(); + _ = _verificationCodeRepository.AddAsync(new VerificationCode() + { + CodeType = Core.Domain.Share.VerifyType.Email, + HasSend = true, + Code = code, + UserId = Guid.Empty,//此时不知道用户 + EmailOrPhone = emailAddress, + ExpirationTime = DateTime.Now.AddMinutes(3) + }).Result; + _ = _verificationCodeRepository.SaveChangesAsync().Result; + }; - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - await smtp.SendAsync(messageToSend); - - await smtp.DisconnectAsync(true); - } + await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle); } //中心调研 登陆 - public async Task AnolymousSendEmail(string researchProgramNo,string emailAddress, int verificationCode) - { + public async Task AnolymousSendEmail(string researchProgramNo, string emailAddress, int verificationCode) + { var messageToSend = new MimeMessage(); @@ -161,35 +146,29 @@ namespace IRaCIS.Application.Services 祝您顺利!/Best Regards. 上海展影医疗科技有限公司" }; - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) + + + EventHandler sucessHandle = (sender, args) => { - smtp.MessageSent += (sender, args) => - { - // args.Response - var code = verificationCode.ToString(); - _ = _verificationCodeRepository.AddAsync(new VerificationCode() - { - CodeType = VerifyType.Email, - HasSend = true, - Code = code, - UserId = Guid.Empty,//此时不知道用户 - EmailOrPhone = emailAddress, - ExpirationTime = DateTime.Now.AddMinutes(3) - }).Result; - _ = _verificationCodeRepository.SaveChangesAsync().Result; + // args.Response + var code = verificationCode.ToString(); + _ = _verificationCodeRepository.AddAsync(new VerificationCode() + { + CodeType = VerifyType.Email, + HasSend = true, + Code = code, + UserId = Guid.Empty,//此时不知道用户 + EmailOrPhone = emailAddress, + ExpirationTime = DateTime.Now.AddMinutes(3) + }).Result; + _ = _verificationCodeRepository.SaveChangesAsync().Result; + }; - }; - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); + await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle); - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - await smtp.SendAsync(messageToSend); - - await smtp.DisconnectAsync(true); - } + } @@ -218,35 +197,25 @@ namespace IRaCIS.Application.Services 祝您顺利!/Best Regards. 上海展影医疗科技有限公司" }; - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) + + EventHandler sucessHandle = (sender, args) => { - smtp.MessageSent += (sender, args) => + // args.Response + var code = verificationCode.ToString(); + _ = _verificationCodeRepository.AddAsync(new VerificationCode() { - // args.Response - var code = verificationCode.ToString(); - _ = _verificationCodeRepository.AddAsync(new VerificationCode() - { - CodeType = 0, - HasSend = true, - Code = code, - UserId = userId, - ExpirationTime = DateTime.Now.AddMinutes(3) - }).Result; - _ = _verificationCodeRepository.SaveChangesAsync().Result; + CodeType = 0, + HasSend = true, + Code = code, + UserId = userId, + ExpirationTime = DateTime.Now.AddMinutes(3) + }).Result; + _ = _verificationCodeRepository.SaveChangesAsync().Result; + }; - }; + await SendEmailHelper.SendEmailAsync(messageToSend, sucessHandle); - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; - - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); - - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - await smtp.SendAsync(messageToSend); - - await smtp.DisconnectAsync(true); - - } + } diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 480f59973..33f2f5485 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -71,6 +71,7 @@ namespace IRaCIS.Core.Application.Image.QA public async Task VerifyQCCanAddChallenge(Guid subjectVisitId, [FromRoute] CurrentQC currentQCType) { await VerifyIsCanQCAsync(null, subjectVisitId); + if (!await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType)) { return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。"); @@ -98,7 +99,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (await _qcChallengeRepository.AnyAsync(t => t.IsClosed == false && t.SubjectVisitId == qaQuestionCommand.SubjectVisitId && t.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)) { - throw new BusinessValidationFailedException("当前访视有未关闭的 同意CRC上传的质疑,不允许再次添加质疑"); + throw new BusinessValidationFailedException("当前访视有未关闭的 同意CRC重传的质疑,不允许再次添加质疑"); } @@ -164,7 +165,7 @@ namespace IRaCIS.Core.Application.Image.QA if (dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload || dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload) { - throw new BusinessValidationFailedException("CRC申请重传的/QC同意重传的质疑,在CRC设置重传完成前不允许关闭质疑"); + throw new BusinessValidationFailedException("CRC申请重传的|QC同意重传的质疑,在CRC设置重传完成前不允许关闭质疑"); } diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 902179524..1b3983b31 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -13,6 +13,7 @@ using IRaCIS.Application.Contracts; using Microsoft.AspNetCore.Authorization; using MailKit.Security; using MimeKit; +using IRaCIS.Core.Application.Helper; namespace IRaCIS.Core.Application.Contracts { @@ -601,24 +602,10 @@ namespace IRaCIS.Core.Application.Contracts messageToSend.Body = builder.ToMessageBody(); - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) - { - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; - - - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); - - - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - - await smtp.SendAsync(messageToSend); - - - await smtp.DisconnectAsync(true); - } + await SendEmailHelper.SendEmailAsync(messageToSend, null); + await _trialSiteSurveyRepository.SaveChangesAsync(); return ResponseOutput.Ok(); @@ -857,19 +844,9 @@ namespace IRaCIS.Core.Application.Contracts messageToSend.Body = builder.ToMessageBody(); - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) - { + await SendEmailHelper.SendEmailAsync(messageToSend, null); - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; - - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); - - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - await smtp.SendAsync(messageToSend); - - await smtp.DisconnectAsync(true); - } + var trialId = joinCommand.TrialId; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs index 04c05d361..ee4ad0c5a 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs @@ -13,6 +13,7 @@ using MimeKit; using MailKit.Security; using Microsoft.AspNetCore.Authorization; using Panda.DynamicWebApi.Attributes; +using IRaCIS.Core.Application.Helper; namespace IRaCIS.Core.Application.Service { @@ -264,21 +265,10 @@ namespace IRaCIS.Core.Application.Service messageToSend.Body = builder.ToMessageBody(); - using (var smtp = new MailKit.Net.Smtp.SmtpClient()) - { - - smtp.ServerCertificateValidationCallback = (s, c, h, e) => true; - - await smtp.ConnectAsync("smtp.163.com", 465, SecureSocketOptions.StartTls); - - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - await smtp.SendAsync(messageToSend); - - await smtp.DisconnectAsync(true); - } + await SendEmailHelper.SendEmailAsync(messageToSend, null); + var trialId = sendEmail.TrialId; var userId = sysUserInfo.Id; @@ -305,6 +295,7 @@ namespace IRaCIS.Core.Application.Service + #region 老版本流程 现在废弃 ///