diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 9e706e45f..d8028d2b1 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -997,6 +997,8 @@ namespace IRaCIS.Core.API.Controllers (serverFilePath, relativePath) = FileStoreHelper.GetOtherFileUploadPath(_hostEnvironment, StaticData.Folder.TempFile, fileName); + //FileStoreHelper.UploadOOS(serverFilePath, "testc/test", true); + return serverFilePath; }); diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs index 66c16aee1..1f4aa82e5 100644 --- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs +++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs @@ -1,6 +1,7 @@ using DocumentFormat.OpenXml.EMMA; using DocumentFormat.OpenXml.Spreadsheet; using IRaCIS.Application.Contracts; +using IRaCIS.Application.Interfaces; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Service.Reading.Dto; @@ -40,16 +41,18 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _trialRepository; + private readonly IDictionaryService _dictionaryService; private readonly IOptionsMonitor _SystemEmailSendConfig; public readonly static string EmailNamePlaceholder="EmailNamePlaceholder"; - public EmailSendService(IRepository trialEmailNoticeConfigRepository, IRepository emailNoticeConfigRepository, IRepository trialRepository, IOptionsMonitor systemEmailSendConfig) + public EmailSendService(IRepository trialEmailNoticeConfigRepository, IRepository emailNoticeConfigRepository, IRepository trialRepository, IOptionsMonitor systemEmailSendConfig, IDictionaryService dictionaryService) { _trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository; _emailNoticeConfigRepository = emailNoticeConfigRepository; _trialRepository = trialRepository; _SystemEmailSendConfig = systemEmailSendConfig; + _dictionaryService = dictionaryService; } //入组确认/PD确认 @@ -300,12 +303,23 @@ namespace IRaCIS.Core.Application.Service var isEn_us = _userInfo.IsEn_Us; var info = await _repository.Where(t => t.Id == visitTaskId, ignoreQueryFilters: true).Select(t => new { t.TrialId, t.Trial.ResearchProgramNo, t.Trial.TrialCode, t.SourceSubjectVisit.VisitName, t.Subject.Code }).FirstOrDefaultAsync(); - var answerList= await _repository.Where(t => t.Id == visitTaskId, ignoreQueryFilters: true).SelectMany(t=>t.ReadingTaskQuestionAnswerList).Select(t=>new { QuestionName= isEn_us? t.ReadingQuestionTrial.QuestionEnName:t.ReadingQuestionTrial.QuestionName,t.Answer}).ToListAsync(); + var answerList= await _repository.Where(t => t.Id == visitTaskId, ignoreQueryFilters: true).SelectMany(t=>t.ReadingTaskQuestionAnswerList).Select(t=>new { QuestionName= isEn_us? t.ReadingQuestionTrial.QuestionEnName:t.ReadingQuestionTrial.QuestionName, t.ReadingQuestionTrial.DictionaryCode, t.Answer}).ToListAsync(); var template = "
{0}: {1}
"; + var needTranslateDicNameList=answerList.Where(t=>!string.IsNullOrEmpty(t.DictionaryCode)).Select(t=>t.DictionaryCode).ToList(); - var piResult= string.Join(' ', answerList.Select(t => string.Format(template, t.QuestionName, t.Answer))) ; + var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslateDicNameList.ToArray()); + + + Func transFunc = (bool isNeedTranslate, string dicCode, string answer) => + { + var result = translateDataList[dicCode].Where(t => t.Code.ToLower() == answer.ToLower()).Select(t => isEn_us ? t.Value : t.ValueCN).FirstOrDefault(); + + return result; + }; + + var piResult= string.Join(' ', answerList.Select(t => string.Format(template, t.QuestionName, transFunc(!string.IsNullOrEmpty(t.DictionaryCode),t.DictionaryCode,t.Answer ) ))) ; Func topicAndHtmlFunc = trialEmailConfig => {