diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.csproj b/IRaCIS.Core.API/IRaCIS.Core.API.csproj index f0aa14e03..3554a605a 100644 --- a/IRaCIS.Core.API/IRaCIS.Core.API.csproj +++ b/IRaCIS.Core.API/IRaCIS.Core.API.csproj @@ -109,6 +109,12 @@ Always + + Always + + + Always + diff --git a/IRaCIS.Core.API/wwwroot/EmailTemplate/TrialUserExistJoin.html b/IRaCIS.Core.API/wwwroot/EmailTemplate/TrialUserExistJoin.html new file mode 100644 index 000000000..c87796bc8 --- /dev/null +++ b/IRaCIS.Core.API/wwwroot/EmailTemplate/TrialUserExistJoin.html @@ -0,0 +1,49 @@ + + + + + Title + + +
+
+
+ 尊敬的 {0} ,您好: +
+
+ 展影医疗作为 [{1} (实验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢! +
+
+ 该项目采用电子化工作流,系统及您的账号信息如下: +
+ +
+
+ 项目编号: {3} +
+
+ 试验方案号: {2} +
+
+ 试验名称: {1} +
+
+ 用户名: {4} +
+
+ 角色: {5} +
+
+ 系统登录地址:{6} +
+
+ + +
+
祝您顺利!/Best Regards
+
上海展影医疗科技有限公司
+
+
+
+ + diff --git a/IRaCIS.Core.API/wwwroot/EmailTemplate/TrialUserFirstJoin.html b/IRaCIS.Core.API/wwwroot/EmailTemplate/TrialUserFirstJoin.html new file mode 100644 index 000000000..4f229b446 --- /dev/null +++ b/IRaCIS.Core.API/wwwroot/EmailTemplate/TrialUserFirstJoin.html @@ -0,0 +1,52 @@ + + + + + Title + + +
+
+
+ 尊敬的 {0} ,您好: +
+
+ 展影医疗作为 [{1} (实验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢! +
+
+ 该项目采用电子化工作流,系统及您的账号信息如下: +
+ +
+
+ 项目编号: {3} +
+
+ 试验方案号: {2} +
+
+ 试验名称: {1} +
+
+ 用户名: {4} +
+
+ 角色: {5} +
+
+ 首次登陆前,请通过该链接修改您的账户信息: + + 初始化账号信息 + +
+
+ + +
+
祝您顺利!/Best Regards
+
上海展影医疗科技有限公司
+
+
+
+ + diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 7fadf8a23..58b2b50d0 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -29,14 +29,17 @@ namespace IRaCIS.Core.Application.Contracts private readonly IRepository _trialSiteRepository; private readonly IRepository _trialUserRepository; + private readonly ITokenService _tokenService; - public TrialSiteSurveyService(IRepository trialSiteSurveyRepository, IRepository trialUserRepository,IRepository trialSiteUserSurveyRepository, IRepository userRepository, IRepository trialSiteRepository) + public TrialSiteSurveyService(IRepository trialSiteSurveyRepository, IRepository trialUserRepository,IRepository trialSiteUserSurveyRepository, + IRepository userRepository, IRepository trialSiteRepository, ITokenService tokenService) { _trialSiteSurveyRepository = trialSiteSurveyRepository; _trialSiteUserSurveyRepository = trialSiteUserSurveyRepository; _userRepository = userRepository; _trialUserRepository = trialUserRepository; _trialSiteRepository = trialSiteRepository; + _tokenService = tokenService; } private object lockObj { get; set; } = new object(); @@ -804,46 +807,37 @@ namespace IRaCIS.Core.Application.Contracts //主题 messageToSend.Subject = $"[来自展影IRC] [{ trialInfo.ResearchProgramNo}]邀请信"; + var builder = new BodyBuilder(); var sysUserInfo = (await _userRepository.Where(t => t.Id == userInfo.SystemUserId).FirstOrDefaultAsync()).IfNullThrowException(); + var token = _tokenService.GetToken(IRaCISClaims.Create(_mapper.Map(sysUserInfo))); - builder.HtmlBody = @$" -
-
-
- 尊敬的 {sysUserInfo.LastName + "/" + sysUserInfo.FirstName} ,您好: -
-
- 展影医疗作为 实验方案号 {"'" + trialInfo.ResearchProgramNo + "'"} 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢! - 该项目采用电子化工作流,系统及您的账号信息如下: -
-
-
- 项目编号: {trialInfo.TrialCode} -
-
- 试验方案号: {trialInfo.ResearchProgramNo} -
-
- 试验名称: {trialInfo.ExperimentName} -
-
- 用户名: {sysUserInfo.UserName} -
-
- 角色: {sysUserInfo.UserTypeRole.UserTypeShortName} -
-
- {(sysUserInfo.IsFirstAdd==false ? "系统登录地址:" + joinCommand.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + joinCommand.RouteUrl)} -
-
-
-
- "; + var pathToFile = _hostEnvironment.WebRootPath + + Path.DirectorySeparatorChar.ToString() + + "EmailTemplate" + + Path.DirectorySeparatorChar.ToString() + + (sysUserInfo.IsFirstAdd ? "TrialUserFirstJoin.html" : "TrialUserExistJoin.html"); + + using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile)) + { + var templateInfo = SourceReader.ReadToEnd(); + + var routeUrl = joinCommand.RouteUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token; + + builder.HtmlBody = string.Format(templateInfo, + sysUserInfo.FullName, + trialInfo.ExperimentName, + trialInfo.ResearchProgramNo, + trialInfo.TrialCode, + sysUserInfo.UserName, + sysUserInfo.UserTypeRole.UserTypeShortName, + sysUserInfo.IsFirstAdd ? joinCommand.BaseUrl : routeUrl + ); + } messageToSend.Body = builder.ToMessageBody(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs index b02bd529e..ac5a607a6 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs @@ -234,45 +234,29 @@ namespace IRaCIS.Core.Application.Service var token = _tokenService.GetToken(IRaCISClaims.Create(_mapper.Map(sysUserInfo))); - var initUrl = $@" - 修改 "; + var pathToFile = _hostEnvironment.WebRootPath + + Path.DirectorySeparatorChar.ToString() + + "EmailTemplate" + + Path.DirectorySeparatorChar.ToString() + + (sysUserInfo.IsFirstAdd? "TrialUserFirstJoin.html": "TrialUserExistJoin.html"); + using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile)) + { + var templateInfo= SourceReader.ReadToEnd(); + var routeUrl = sendEmail.RouteUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token; + + builder.HtmlBody = string.Format(templateInfo, + sysUserInfo.FullName, + trialInfo.ExperimentName, + trialInfo.ResearchProgramNo, + trialInfo.TrialCode, + sysUserInfo.UserName, + sysUserInfo.UserTypeRole.UserTypeShortName, + sysUserInfo.IsFirstAdd? sendEmail.BaseUrl : routeUrl + ); + } - builder.HtmlBody = @$" -
-
-
- 尊敬的 {sysUserInfo.LastName + "/" + sysUserInfo.FirstName} ,您好: -
-
- 展影医疗作为 实验方案号 {"'" + trialInfo.ResearchProgramNo + "'"} 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢! - 该项目采用电子化工作流,系统及您的账号信息如下: -
-
-
- 项目编号: {trialInfo.TrialCode} -
-
- 试验方案号: {trialInfo.ResearchProgramNo} -
-
- 试验名称: {trialInfo.ExperimentName} -
-
- 用户名: {sysUserInfo.UserName} -
-
- 角色: {sysUserInfo.UserTypeRole.UserTypeShortName} -
-
- {(sysUserInfo.IsFirstAdd==false ? "系统登录地址:" + sendEmail.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + initUrl)} -
-
-
-
- "; messageToSend.Body = builder.ToMessageBody();