我正在努力替换字符串中的一些代码。我有一个函数,它从 emailtemplates 表中获取电子邮件模板,其中包含一些代码,例如##NewUserFirstName##
该##password##
表的正文列。还有另一个表已经定义了哪个表中的值将替换这些代码,所以##NewUserFirstName##
我已经定义UserProfile.FirstName
了,并且##password##
UserProfile.password
在第二个表中。我有这样的所有合并代码:
using (IMailMergeCodeManager mailMergeCodeManager = new ManagerFactory().GetMailMergeCodeManager())
{
mailMergeCodes = mailMergeCodeManager.GetAll().ToList();
}
现在我用这些代码替换模板中的代码,如下所示:
using (ICampaignManager campaignManager = new ManagerFactory().GetCampaignManager())
{
using (IUserProfileManager UserProfileManager1 = new ManagerFactory().GetUserProfileManager())
{
using (IAccountManager AccountManager = new ManagerFactory().GetAccountManager())
{
using (ICallTypeManager CallTypeManager = new ManagerFactory().GetCallTypeManager())
{
using (ICallOutcomeManager CallOutComeManager = new ManagerFactory().GetCallOutcomeManager())
{
using (ICallRecordingManager CallRecordingManager = new ManagerFactory().GetCallRecordingManager())
{
UserProfile UserProfile = UserProfileManager1.GetByfkAccountId(Convert.ToInt32(AccountId)).FirstOrDefault();
Account acc = AccountManager.GetById(Convert.ToInt32(AccountId));
UserProfile CurrentLoggedInUser = UserProfileManager1.GetByfkAccountId(Convert.ToInt32(CurrentAccount.Id)).FirstOrDefault();
CallRecording callRecording = CallRecordingManager.GetById(callRecordingId);
if (subject.Contains("##password##") || body.Contains("##password##"))
password = GetPassword(UserProfile.UserAuthentication.EmailAddress);
foreach (MailMergeCode mergeCode in mailMergeCodes)
{
if (body.Contains(mergeCode.MailMerge))
body = Regex.Replace(body, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);
if (subject.Contains(mergeCode.MailMerge) && !subject.Contains("##password##"))
subject = Regex.Replace(subject, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);
}
}
}
}
}
}
}
}
但是下面的行##NewUserFirstName##
是UserProfile.FirstName
body = Regex.Replace(body, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);
而不是从中获得价值UserProfile.FirstName
是“乔·史密斯”
我该如何解决这个问题?