public string ReplacePlaceholders(string mailContent, SuccessRequestModel productRequest) { string firstnamePlaceholder = "[FIRSTNAME]", lastnamePlaceholder = "[LASTNAME]", companyPlaceholder = "[COMPANY]", emailPlaceholder = "[EMAIL]", industryPlaceholder = "[INDUSTRY]", jobtitlePlaceholder = "[JOBTITLE]", telephonePlaceholder = "[TELEPHONE]", productPlaceholder = "[PRODUCT]", datePlaceholder = "[DATE]", date = DateTime.Now.Date.ToString("dd MMM yyyy"); var productUrl = Common.GetHyperLink(currentpage.GetFullNiceUrl(), currentpage.Name); mailContent = mailContent.Replace(firstnamePlaceholder, productRequest.FirstName) .Replace(lastnamePlaceholder, productRequest.LastName) .Replace(jobtitlePlaceholder, productRequest.JobTitle) .Replace(companyPlaceholder, productRequest.Company) .Replace(emailPlaceholder, productRequest.Email) .Replace(industryPlaceholder, ((String.IsNullOrEmpty(productRequest.Industry)) ? String.Empty : ((Umbraco.TypedContent(productRequest.Industry) != null) ? Umbraco.TypedContent(productRequest.Industry).Name : productRequest.Industry))) .Replace(telephonePlaceholder, productRequest.PhoneNumber) .Replace(productPlaceholder, productUrl) .Replace(datePlaceholder, date); return(mailContent); }
public ActionResult SuccessRequestSend(SuccessRequestModel ProductRequest) { //TryValidateModel(Model); //Check if the dat posted is valid (All required's & email set in email field) if (!ModelState.IsValid) { //Not valid - so lets return the user back to the view with the data they entered still prepopulated return(CurrentUmbracoPage()); } Node SuccessHome = currentpage.GetAncestorByPathLevel(2); using (CrifAustriaEFContainer objDB = new CrifAustriaEFContainer()) { try { SuccessStoryRequest objContact = new SuccessStoryRequest(); objContact.First_Name = ProductRequest.FirstName; objContact.Last_Name = ProductRequest.LastName; objContact.Email = ProductRequest.Email; objContact.Company = ProductRequest.Company; objContact.Industry = ((String.IsNullOrEmpty(ProductRequest.Industry)) ? String.Empty : ((Umbraco.TypedContent(ProductRequest.Industry) != null) ? Umbraco.TypedContent(ProductRequest.Industry).Name : ProductRequest.Industry)); objContact.JobTitle = ((String.IsNullOrEmpty(ProductRequest.JobTitle)) ? String.Empty : ProductRequest.JobTitle); objContact.Telephone = ((String.IsNullOrEmpty(ProductRequest.PhoneNumber)) ? String.Empty : ProductRequest.PhoneNumber); objContact.Agreement = ProductRequest.Agreement.ToString(); objContact.Newsletter = (ProductRequest.Newsletter) ? "Y" : "N"; objContact.Culture = CultureInfo.CurrentCulture.Name; objContact.Culture = CultureInfo.CurrentCulture.Name; objContact.ProductName = currentpage.Name; objContact.CreatedDate = DateTime.Now; objContact.ModifiedDate = DateTime.Now; objDB.SuccessStoryRequests.Add(objContact); objDB.SaveChanges(); if (ProductRequest.Newsletter) { //Dictionary<string, string> dictFormValuesNewsletter = new Dictionary<string, string>(); //dictFormValuesNewsletter.Add("First Name", Model.FirstName); //dictFormValuesNewsletter.Add("Last Name", Model.LastName); //dictFormValuesNewsletter.Add("Email", Model.Email); //dictFormValuesNewsletter.Add("Job Title", Model.JobTitle); //dictFormValuesNewsletter.Add("Telephone Number", ""); //dictFormValuesNewsletter.Add("company", Model.Company); //dictFormValuesNewsletter.Add("Industry", (String.IsNullOrEmpty(Model.Industry)) ? String.Empty : Model.Industry); //dictFormValuesNewsletter.Add("Country", list.ConvertTwoLetterNameFullName(Model.Country)); //dictFormValuesNewsletter.Add("linkedinbio", ((!String.IsNullOrEmpty(Model.linkedinProfileUrl)) ? Model.linkedinProfileUrl : String.Empty)); //strFormGUID = System.Configuration.ConfigurationManager.AppSettings["hubspotnewsletterformId"].ToString(); //bool blnRetNewsletter = Post_To_HubSpot_SubmitFormsAPI(intPortalID, strFormGUID, dictFormValuesNewsletter, strHubSpotUTK, strIpAddress, strPageTitle, strPageURL, ref strError); //if (blnRetNewsletter) //{ // try // { // ccf_NewsLetter objContactNewletter = new ccf_NewsLetter(); // objContactNewletter.First_Name = Model.FirstName; // objContactNewletter.Last_Name = Model.LastName; // objContactNewletter.Email = Model.Email; // objContactNewletter.Telephone = ""; // objContactNewletter.Company = Model.Company; // objContactNewletter.JobTitle = Model.JobTitle; // objContactNewletter.Industry = ((String.IsNullOrEmpty(Model.Industry)) ? String.Empty : Model.Industry); // objContactNewletter.Country = list.ConvertTwoLetterNameFullName(Model.Country); // objContactNewletter.Agreement = Model.Agreement.ToString(); // objContactNewletter.Culture = CultureInfo.CurrentCulture.Name; // objContactNewletter.CreatedDate = DateTime.Now; // objContactNewletter.ModifiedDate = DateTime.Now; // objDB.ccf_NewsLetter.Add(objContactNewletter); // objDB.SaveChanges(); // } // catch (DbEntityValidationException ex) // { // StringBuilder sb = new StringBuilder(); // foreach (var failure in ex.EntityValidationErrors) // { // sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType()); // foreach (var error in failure.ValidationErrors) // { // sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); // sb.AppendLine(); // } // } // throw new DbEntityValidationException( // "Entity Validation Failed - errors follow:\n" + // sb.ToString(), ex // ); // Add the original exception as the innerException // } //} //else //{ // return CurrentUmbracoPage(); //} } string toEmailAddress = "" , bccvalue = "" , emailSubject = "" , emailbody = "" , replyMesssage = "" , replyemailSubject = ""; //string message = null; if (SuccessHome.GetProperty("sendNotificationTo") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("sendNotificationTo").Value)) { toEmailAddress = SuccessHome.GetProperty("sendNotificationTo").Value; } if (SuccessHome.GetProperty("bCCRecipients") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("bCCRecipients").Value)) { bccvalue = SuccessHome.GetProperty("bCCRecipients").Value.Trim(); } if (SuccessHome.GetProperty("eMailSubject") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("eMailSubject").Value)) { emailSubject = SuccessHome.GetProperty("eMailSubject").Value; emailSubject = ReplacePlaceholders(emailSubject, ProductRequest); } else { emailSubject = "New email product request - " + DateTime.Now.Date.ToString("dd MMM yyyy"); } if (SuccessHome.GetProperty("notificationBody") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("notificationBody").Value)) { emailbody = SuccessHome.GetProperty("notificationBody").Value; } else { emailbody = @"<p>Hi,</p> <p>There is a new email from the crif Austria Success Stories request page.</p> <p>Please see the details below.</p> <p>First Name : [FIRSTNAME]</p> <p>Last Name : [LASTNAME]</p> <p>Email : [EMAIL]</p> <p>Telephone:[TELEPHONE]</p> <p>Industry :[INDUSTRY]</p> <p>Company : [COMPANY]</p> <p>Job Title : [JOBTITLE]</p> <p>Product : [PRODUCT]</p> <p>Date :[DATE]</p> <p> </p> <p> </p>"; } emailbody = ReplacePlaceholders(emailbody, ProductRequest); if (SuccessHome.GetProperty("fromEmail") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("fromEmail").Value)) { var fromEmail = SuccessHome.GetProperty("fromEmail").Value; Email.sendEmail(fromEmail, toEmailAddress, emailSubject, emailbody, "", true, "", bccvalue); } if (SuccessHome.GetProperty("replyToUser") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("replyToUser").Value) && SuccessHome.GetProperty("replyToUser").Value == "1") { if (SuccessHome.GetProperty("replyEmailSubject") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("replyEmailSubject").Value)) { replyemailSubject = SuccessHome.GetProperty("replyEmailSubject").Value; replyemailSubject = ReplacePlaceholders(replyemailSubject, ProductRequest); } else { replyemailSubject = "Thank you for contacting us."; } //Reply Senders Body if (SuccessHome.GetProperty("bodyContent") != null && !string.IsNullOrEmpty(SuccessHome.GetProperty("bodyContent").Value)) { replyMesssage = SuccessHome.GetProperty("bodyContent").Value.Trim(); replyMesssage = ReplacePlaceholders(replyMesssage, ProductRequest); } if (!string.IsNullOrEmpty(ProductRequest.Email)) { var fromEmail = SuccessHome.GetProperty("fromEmail").Value; Email.sendEmail(fromEmail, ProductRequest.Email, replyemailSubject, replyMesssage, "", true, "", ""); } } } catch (DbEntityValidationException ex) { StringBuilder sb = new StringBuilder(); foreach (var failure in ex.EntityValidationErrors) { sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType()); foreach (var error in failure.ValidationErrors) { sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); sb.AppendLine(); } } throw new DbEntityValidationException( "Entity Validation Failed - errors follow:\n" + sb.ToString(), ex ); // Add the original exception as the innerException } } return(Redirect(currentpage.GetAncestorByPathLevel(1).GetDescendantNodesByType("thankYou").Where(x => x.Level == 2).First().Url + "?id=" + @currentpage.Id)); }