diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs index 29ef83983..908fcb110 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs @@ -96,45 +96,42 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var userWorkLanguageList = userinfoList.Select(x => x.UserWorkLanguage).Distinct().ToList(); foreach (var workLanguage in userWorkLanguageList) { - try + var langUserInfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); + if (!langUserInfoList.Any()) { - var langUserInfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); - if (!langUserInfoList.Any()) - { - continue; - } - - var userIsEn_US = workLanguage == UserWorkLanguage.US; - - var messageToSend = new MimeMessage(); - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - - foreach (var userinfo in langUserInfoList) - { - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); - } - - var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - var userNames = langUserInfoList.Select(x => x.UserName).ToList(); - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var topicStr = string.Format(input.topicStr, companyName); - - var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), - string.Join(',', userNames), - _systemEmailConfig.SiteUrl - ); - - return (topicStr, htmlBodyStr); - }; - - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); + continue; } - catch (Exception) + + var userIsEn_US = workLanguage == UserWorkLanguage.US; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + foreach (var userinfo in langUserInfoList) { + try + { + var messageToSend = new MimeMessage(); + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var topicStr = string.Format(input.topicStr, companyName); + + var htmlBodyStr = string.Format( + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + userinfo.UserName, + _systemEmailConfig.SiteUrl + ); + + return (topicStr, htmlBodyStr); + }; + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); + await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); + } + catch (Exception) + { + } } } diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs index 64dd23042..b379012d1 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs @@ -116,54 +116,53 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var groupedList = userWithTrialList.GroupBy(x => new { x.TrialId, x.User.UserWorkLanguage }).ToList(); foreach (var groupItem in groupedList) { - try + var langUserInfoList = groupItem.Select(x => x.User).Distinct().ToList(); + if (!langUserInfoList.Any()) { - var langUserInfoList = groupItem.Select(x => x.User).Distinct().ToList(); - if (!langUserInfoList.Any()) - { - continue; - } - - Console.WriteLine($"发送定时过期提醒,数量:{langUserInfoList.Count}"); - - var trialInfo = await _trialRepository.Where(x => x.Id == groupItem.Key.TrialId).FirstOrDefaultAsync(); - if (trialInfo == null) - { - continue; - } - - var workLanguage = groupItem.Key.UserWorkLanguage; - var userIsEn_US = workLanguage == UserWorkLanguage.US; - var messageToSend = new MimeMessage(); - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - - foreach (var userinfo in langUserInfoList) - { - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); - } - - var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - var userNames = langUserInfoList.Select(x => x.UserName).ToList(); - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var topicStr = string.Format(input.topicStr, companyName); - - var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), - string.Join(',', userNames), - _systemEmailConfig.SiteUrl - ); - - return (topicStr, htmlBodyStr); - }; - - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); - + continue; } - catch (Exception) - { + Console.WriteLine($"发送定时过期提醒,数量:{langUserInfoList.Count}"); + + var trialInfo = await _trialRepository.Where(x => x.Id == groupItem.Key.TrialId).FirstOrDefaultAsync(); + if (trialInfo == null) + { + continue; + } + + var workLanguage = groupItem.Key.UserWorkLanguage; + var userIsEn_US = workLanguage == UserWorkLanguage.US; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + foreach (var userinfo in langUserInfoList) + { + try + { + var messageToSend = new MimeMessage(); + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var topicStr = string.Format(input.topicStr, companyName); + + var htmlBodyStr = string.Format( + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + userinfo.UserName, + _systemEmailConfig.SiteUrl + ); + + return (topicStr, htmlBodyStr); + }; + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); + + } + catch (Exception) + { + + } } }