2013-01-01 29 views
0

我正在替換字符串中的某些代碼。我有一個函數從電子郵件模板表中獲取電子郵件模板,其中的代碼如##NewUserFirstName####password## 位於該表的正文列中。還有另一個表格定義了哪個表格將取代這些代碼的值,因此對於##NewUserFirstName##我已經定義了UserProfile.FirstName##password##UserProfile.password在第二個表格中。我已經得到了所有的合併代碼是這樣的:使用數據庫中的值替換字符串中的代碼

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

using (IMailMergeCodeManager mailMergeCodeManager = new ManagerFactory().GetMailMergeCodeManager()) 
    { 
     mailMergeCodes = mailMergeCodeManager.GetAll().ToList(); 
    } 

現在我使用這些代碼,這樣的替換模板代碼

body = Regex.Replace(body, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);

而不是從UserProfile.FirstName獲得價值,這是「Joe Smith」

我該如何解決這個問題?

+0

你使用的任何問題,我們與string.replace我知道,如果這能解決你的問題 – skhurams

回答

0

使用此代碼,請讓我知道,如果你有

if (Body.Contains(""##password##"")) 
{ 
Body = Body.Replace(""##password##"", yourpassword_string); 
} 
+0

嗨@Skhurams:我想,以取代mergeCode.MailMerge mergeCode.FieldName其中mergeCode.MailMerge是## NewUserFirstName ##和mergeCode.FieldName是UserProfile.FirstName,但我想要由UserProfile.FirstName持有的值是「Joe smith」 – DotnetSparrow

+0

當您將字符串添加到主題和身體替換字符串與代碼我提到 – skhurams

相關問題