public void ReplaceDynamicPlaceholders(StringBuilder messageBody, CompleteResponseDTO complete) { MatchCollection matches = Regex.Matches(messageBody.ToString(), "\\[[0-9]+\\]"); List<IResponseElementProvider> elements = complete.ResponseHolder.GetElements(); foreach (Match m in matches) { string placeholder = m.Value; string placeholderId = placeholder.Substring(1); placeholderId = placeholderId.Substring(0, placeholderId.Length - 1); int questionID = 0; Int32.TryParse(placeholderId, out questionID); IResponseElementProvider element = null; List<ResponseDto> responses = null; if (questionID != 0) { if( complete.ResponseHolder.GetElements() != null) element = complete.ResponseHolder.GetElements().Find(delegate(IResponseElementProvider irep) { return irep.PageElement.ElementId == questionID; }); //Added if condition to prevent Object references issues on 10/22/10 if (element != null) { responses = element.GetResponseDto(complete.ResponseKey); } else { responses = new List<ResponseDto>(); if (complete.Responses.Count != -1) { foreach (ResponseDto responses1 in complete.Responses) { Type respType = responses1.GetType(); if (respType == typeof(QuestionResponseDto)) { responses.Add((QuestionResponseDto)responses1); } } } } PageElementChoiceDto choice = null; if (responses != null) { if (responses.Count == 0) responses = null; } //Added if condition to prevent Object references issues on 10/22/10 if (responses != null) { if (responses.Count > 0) { string response = ""; foreach (ResponseDto rd in responses) { QuestionResponseDto r = rd as QuestionResponseDto; if (r != null) { int choiceId = r.ChoiceId; if (element != null) choice = element.Choices.Find(delegate(PageElementChoiceDto pecd) { return pecd.ChoiceId == choiceId; }); if (choice != null) { response = response.TrimStart(' '); if (!string.IsNullOrEmpty(response)) { response += ", "; } response += choice.ElementText; if (r.ListOfValuesId != null) { response += " - " + choice.Choices.Find(delegate(LovInfo lov) { return lov.LovKey == r.ListOfValuesId; }).ColValue; } if (!string.IsNullOrEmpty(r.ChoiceText)) { response = response.TrimStart(' '); if (!string.IsNullOrEmpty(response)) { response += (" - "); } } response += r.ChoiceText; //response.Append(" "); } else { if (r.ChoiceId == questionID) { response += GetElementText(r.ChoiceId) + " "; response += r.ChoiceText + " "; } } } } messageBody.Replace(placeholder, response); } } //Added by Chandra on 11/03/2010 else { messageBody.Replace(placeholder, String.Empty); } } } }
private void SendUnsubscribeEmail(QuestionnaireDto questionnaire, PersonalResponseDto customer, string rid) { List<ResponseDto> responses = new List<ResponseDto>(); CompleteResponseDTO complete = new CompleteResponseDTO(customer.CustomerId, rid, responses, new FormSubmissionFacade.IResponseServiceClass(questionnaire, this.PageAssembly.Page, questionnaire.CountryCode, questionnaire.LanguageCode, true), customer.ResponseKey); responses.Add(customer); EmailFacade.SendUnsubscribeEmail(complete, customer.EmailAddress); }
/// <summary> /// SendMails() /// </summary> /// <param name="QuestionaireID"></param> private void SendMails(int QuestionnaireID, string languageCode, string CountryCode, StringBuilder QuestionRespSummary) { QuestionnaireDto questionnaire = FormRegistry.QuestionnaireDao.Get((int)QuestionnaireID, QuestionnaireType.Questionnaire, ViewType.Undefined); PageDto page = FormRegistry.PageDao.Get(QuestionnaireID, PageType.FormPage); IResponseServiceClass ResponseProvider = new IResponseServiceClass(questionnaire, page, CountryCode, languageCode, true); CompleteResponseDTO e = new CompleteResponseDTO(CustomerID, string.Empty, responses, ResponseProvider, Convert.ToInt64(ResponseID)); EmailFacade.SendEmail(e, MailtoRecipent, QuestionRespSummary); }