From 0ce6b765dc3fdb128364e61acd04a4763fb2ce80 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 30 Mar 2022 17:25:02 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrialSiteUser/DTO/UserTrialViewModel.cs | 4 +- .../TrialSiteUser/TrialExternalUserService.cs | 222 +++++++++--------- .../TrialSiteUser/TrialMaintenanceService.cs | 4 +- 3 files changed, 119 insertions(+), 111 deletions(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs index df2ea5e2..07e6e42a 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs @@ -144,7 +144,9 @@ namespace IRaCIS.Application.Contracts { public Guid TrialId { get; set; } = Guid.Empty; public string UserRealName { get; set; } = string.Empty; - public string UserType { get; set; } = string.Empty; + //public string UserType { get; set; } = string.Empty; + + public Guid? UserTypeId { get; set; } public string UserName { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs index 693d61e5..36b63d04 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs @@ -316,31 +316,36 @@ namespace IRaCIS.Core.Application.Service await _trialUserRepository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId }); - var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com")); - //收件地址 - messageToSend.To.Add(new MailboxAddress(String.Empty, needUpdate.Email)); - //主题 - messageToSend.Subject = $"GRR External User survey (Trial {(editTrialUserPreparation.IsJoin == false ?"Reject Success":"Join Success")})"; + } - var builder = new BodyBuilder(); + var success = await _trialExternalUseRepository.SaveChangesAsync(); - var trialInfo = await _repository.FirstOrDefaultAsync(t => t.Id == needUpdate.TrialId); - var sysUserInfo = await _userRepository.Where(t => t.Id == needUpdate.SystemUserId).Include(t => t.UserTypeRole).FirstOrDefaultAsync(); + var messageToSend = new MimeMessage(); + //发件地址 + messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com")); + //收件地址 + messageToSend.To.Add(new MailboxAddress(String.Empty, needUpdate.Email)); + //主题 + messageToSend.Subject = $"GRR External User survey (Trial {(editTrialUserPreparation.IsJoin == false ? "Reject Success" : "Join Success")})"; - int verificationCode = new Random().Next(100000, 1000000); + var builder = new BodyBuilder(); - if (sysUserInfo.IsFirstAdd) - { - await _userRepository.UpdateFromQueryAsync(t => t.Id == sysUserInfo.Id, - u => new User() { Password = MD5Helper.Md5(verificationCode.ToString()) }); - } + var trialInfo = await _repository.FirstOrDefaultAsync(t => t.Id == needUpdate.TrialId); - if (editTrialUserPreparation.IsJoin == true) - { - builder.HtmlBody = @$" + var sysUserInfo = await _userRepository.Where(t => t.Id == needUpdate.SystemUserId).Include(t => t.UserTypeRole).FirstOrDefaultAsync(); + + int verificationCode = new Random().Next(100000, 1000000); + + if (sysUserInfo.IsFirstAdd) + { + await _userRepository.UpdateFromQueryAsync(t => t.Id == sysUserInfo.Id, + u => new User() { Password = MD5Helper.Md5(verificationCode.ToString()) }); + } + + if (editTrialUserPreparation.IsJoin == true) + { + builder.HtmlBody = @$"
@@ -376,43 +381,6 @@ namespace IRaCIS.Core.Application.Service
"; - } - - else - { - builder.HtmlBody = @$" -
-
-
- {sysUserInfo.LastName + "/" + sysUserInfo.FirstName}: -
-
- 您好,您拒绝了参加 {trialInfo.ResearchProgramNo} 项目IRC相关工作的邀请。详细信息如下: -
-
-
- 项目编号: {trialInfo.TrialCode} -
-
- 试验方案号: {trialInfo.ResearchProgramNo} -
-
- 试验名称: {trialInfo.ExperimentName} -
-
- 用户名: {sysUserInfo.UserName} -
-
- 角色: {sysUserInfo.UserTypeRole.UserTypeShortName} -
-
-
-
- "; - } - - - messageToSend.Body = builder.ToMessageBody(); @@ -430,14 +398,50 @@ namespace IRaCIS.Core.Application.Service await smtp.DisconnectAsync(true); } + await _userRepository.UpdateFromQueryAsync(t => t.Id == userId, u => new User() { Status = UserStateEnum.Enable }); + } - await _userRepository.UpdateFromQueryAsync(t => t.Id == userId, u => new User() { Status = UserStateEnum.Enable }); - - var success = await _trialExternalUseRepository.SaveChangesAsync(); - return ResponseOutput.Ok(); + //else + //{ + // builder.HtmlBody = @$" + //
+ //
+ //
+ // {sysUserInfo.LastName + "/" + sysUserInfo.FirstName}: + //
+ //
+ // 您好,您拒绝了参加 {trialInfo.ResearchProgramNo} 项目IRC相关工作的邀请。详细信息如下: + //
+ //
+ //
+ // 项目编号: {trialInfo.TrialCode} + //
+ //
+ // 试验方案号: {trialInfo.ResearchProgramNo} + //
+ //
+ // 试验名称: {trialInfo.ExperimentName} + //
+ //
+ // 用户名: {sysUserInfo.UserName} + //
+ //
+ // 角色: {sysUserInfo.UserTypeRole.UserTypeShortName} + //
+ //
+ //
+ //
+ // "; + //} + + + + + + } /// @@ -449,7 +453,9 @@ namespace IRaCIS.Core.Application.Service public async Task TrialSiteSurveyUserJoinTrial(TrialExternalUserConfirm editInfo) { - var needUpdate = await _trialSiteSurveyUserRepository.Where(t => t.Id == editInfo.Id,true).Include(t => t.TrialSiteSurvey).FirstOrDefaultAsync(); + var needUpdate = (await _trialSiteSurveyUserRepository.Where(t => t.Id == editInfo.Id, true).Include(t => t.TrialSiteSurvey).FirstOrDefaultAsync()).IfNullThrowException(); + + var revieweUser = await _userRepository.FirstOrDefaultAsync(t => t.Id == needUpdate.TrialSiteSurvey.ReviewerUserId); if (DateTime.Now > needUpdate.ExpireTime) @@ -478,32 +484,39 @@ namespace IRaCIS.Core.Application.Service await _trialSiteUserRepository.AddAsync(new TrialSiteUser() { TrialId = trialId, SiteId = siteId, UserId = userId }); + await _userRepository.UpdateFromQueryAsync(t => t.Id == needUpdate.SystemUserId, u => new User() { Status = UserStateEnum.Enable }); - var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com")); - //收件地址 - messageToSend.To.Add(new MailboxAddress(String.Empty, needUpdate.Email)); - //主题 - messageToSend.Subject = $"GRR Site survey (Trial {(editInfo.IsJoin == false ?"Reject Success":"Join Success")})"; - var builder = new BodyBuilder(); + } - var trialInfo = await _repository.FirstOrDefaultAsync(t => t.Id == needUpdate.TrialSiteSurvey.TrialId); + var success = await _trialExternalUseRepository.SaveChangesAsync(); - var sysUserInfo = await _userRepository.Where(t => t.Id == needUpdate.SystemUserId).Include(t => t.UserTypeRole).FirstOrDefaultAsync(); - int verificationCode = new Random().Next(100000, 1000000); + var messageToSend = new MimeMessage(); + //发件地址 + messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com")); + //收件地址 + messageToSend.To.Add(new MailboxAddress(String.Empty, editInfo.IsJoin == true ? needUpdate.Email : revieweUser.EMail)); + //主题 + messageToSend.Subject = $"GRR Site survey (Trial {(editInfo.IsJoin == false ? "Reject" : "Join Success")})"; - if (sysUserInfo.IsFirstAdd) - { - await _userRepository.UpdateFromQueryAsync(t => t.Id == sysUserInfo.Id, - u => new User() { Password = MD5Helper.Md5(verificationCode.ToString()) }); - } + var builder = new BodyBuilder(); - if (editInfo.IsJoin == true) - { - builder.HtmlBody = @$" + var trialInfo = await _repository.FirstOrDefaultAsync(t => t.Id == needUpdate.TrialSiteSurvey.TrialId); + + var sysUserInfo = await _userRepository.Where(t => t.Id == needUpdate.SystemUserId).Include(t => t.UserTypeRole).FirstOrDefaultAsync(); + + int verificationCode = new Random().Next(100000, 1000000); + + if (sysUserInfo.IsFirstAdd) + { + await _userRepository.UpdateFromQueryAsync(t => t.Id == sysUserInfo.Id, + u => new User() { Password = MD5Helper.Md5(verificationCode.ToString()) }); + } + + if (editInfo.IsJoin == true) + { + builder.HtmlBody = @$"
@@ -539,18 +552,18 @@ namespace IRaCIS.Core.Application.Service
"; - } - else - { + } + else + { - builder.HtmlBody = @$" + builder.HtmlBody = @$"
- {sysUserInfo.LastName + "/" + sysUserInfo.FirstName}: + {revieweUser.LastName + "/" + revieweUser.FirstName}:
- 您好,您拒绝了参加 {trialInfo.ResearchProgramNo} 项目IRC相关工作的邀请。详细信息如下: + 您好,{sysUserInfo.LastName + "/" + sysUserInfo.FirstName} 拒绝了参加 {trialInfo.ResearchProgramNo} 项目IRC相关工作的邀请。详细信息如下:
@@ -573,32 +586,25 @@ 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", 25, SecureSocketOptions.StartTls); - - await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); - - await smtp.SendAsync(messageToSend); - - await smtp.DisconnectAsync(true); - } - - } - await _userRepository.UpdateFromQueryAsync(t => t.Id == needUpdate.SystemUserId, u => new User() { Status = UserStateEnum.Enable }); + 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", 25, SecureSocketOptions.StartTls); + + await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH"); + + await smtp.SendAsync(messageToSend); + + await smtp.DisconnectAsync(true); + } - var success = await _trialExternalUseRepository.SaveChangesAsync(); return ResponseOutput.Ok(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs index b2ef36ba..5c2dcd14 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs @@ -28,7 +28,7 @@ namespace IRaCIS.Application.Services { var query = _trialUseRepository.Where(t => t.TrialId == param.TrialId).IgnoreQueryFilters() - .WhereIf(!string.IsNullOrWhiteSpace(param.UserType), t => t.User.UserTypeRole.UserTypeShortName.Contains(param.UserType)) + .WhereIf(param.UserTypeId!=null, t => t.User.UserTypeId==param.UserTypeId) .WhereIf(!string.IsNullOrWhiteSpace(param.UserName), t => t.User.UserName.Contains(param.UserName)) //.WhereIf( param.JoinTime!=null, t => t.JoinTime.to ==param.JoinTime.ToString("yyyy-MM-dd")) @@ -54,7 +54,7 @@ namespace IRaCIS.Application.Services var query = _trialUseRepository.Where(t => t.TrialId == param.TrialId) .Where(t => t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator) - .WhereIf(!string.IsNullOrWhiteSpace(param.UserType), t => t.User.UserTypeRole.UserTypeShortName.Contains(param.UserType)) + .WhereIf(param.UserTypeId != null, t => t.User.UserTypeId == param.UserTypeId) .WhereIf(!string.IsNullOrWhiteSpace(param.UserRealName), t => (t.User.LastName + " / " + t.User.FirstName).Contains(param.UserRealName)) .ProjectTo(_mapper.ConfigurationProvider, new { siteId = param.SiteId });