public static string FillEmailVariables(OrderConfirmationEmailRequest request) { var sbTemp = new StringBuilder(request.HtmlBody); var cityName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(request.CityName.ToLower()); sbTemp .Replace("[@App_Store@]", request.AppStoreLink) .Replace("[@Google_Play@]", request.GooglePlayLink) .Replace("[@View_In_Browser@]", request.ViewInBrowserLink) .Replace("[Email_Subject]", request.EmailSubject) .Replace("[Customer_First_Name]", request.ReceiverFirstname) .Replace("[City_Name]", cityName) .Replace("[Order_Number]", request.OrderNumber) .Replace("[@View_And_print_ticket@]", request.ViewAndPrintTicketLink) .Replace("[Ticket_Details]", request.TicketDetails) .Replace("[User_Full_Name]", request.UserFullName) .Replace("[Date_Of_Order]", request.DateOfOrder) .Replace("[Order_Total]", request.OrderTotal) .Replace("[Ticket_Quantity]", request.TicketQuantity) .Replace("[@terms_and_conditions@]", request.TermsAndConditionsLink) .Replace("[@privacy_policy@]", request.PrivacyPolicyLink) .Replace("[@App_Store@]", request.AppStoreLink) .Replace("[@Google_Play@]", request.GooglePlayLink) .Replace("[City_Number]", request.CityNumber) .Replace("[City_Email]", request.CityEmail) .Replace("[@Contact_Us@]", request.ContactUsLink) .Replace("[@Faqs@]", request.FaqLink) .Replace("[@Download_Map@]", request.DownloadMapLink) .Replace("[@Trip_Advisor@]", request.TripAdvisorLink) .Replace("[@Trust_Pilot@]", request.TrustPilotLink); return(sbTemp.ToString()); }
public virtual string CreateOrderConfirmationEmail(OrderConfirmationEmailRequest request) { var email = new Email { HTMLBody = FillEmailVariables(request), DateCreated = DateTime.Now, Subject = request.EmailSubject, FromAddress = request.SenderEmail, ToAddresses = request.ReceiverEmail, BCCAddresses = request.CcEmails, PriorityLevel = 3, ReadyToSend = true, OrderId = request.OrderId }; EmailRepository.Add(email); return(string.Empty); }
private bool GetTemplate(OrderConfirmationEmailRequest request) { var siteTemlate = NotificationService.GetSiteEmailTemplate(MicrositeId, CurrentLanguageId); if (siteTemlate == null) { Log("Site template not found BasePage => GetTemplate() id:" + _externalSessionId); return(false); } //populate trip advisor and trust pilot variables request.TripAdvisorLink = siteTemlate.TripAdvisorLink; request.TrustPilotLink = siteTemlate.TrustPilotLink; //attempt to get related email template var template = NotificationService.GetEmailTemplate(siteTemlate.EmailTemplateId.ToString()); if (template == null) { Log("Email template not found BasePage => GetTemplate() id:" + siteTemlate.EmailTemplateId); return(false); } var htmlFilePath = Server.MapPath(EmailTemplatePath + template.ContentFile); using (var reader = File.OpenText(htmlFilePath)) // Path to your { request.HtmlBody = reader.ReadToEnd(); } if (string.IsNullOrEmpty(request.HtmlBody) || request.HtmlBody.Length < 200) { Log("Email template return invalid body BasePage => GetTemplate() id:" + siteTemlate.EmailTemplateId); return(false); } return(true); }
public void CreateOrderConfirmationEmail(Order order) { if (order == null) { return; } var eVoucherPage = EnumHelper.GetDescription(EmailTemplatePages.EVoucher); var contactData = NotificationService.GetSiteContactData(MicrositeId, eVoucherPage); var rootUrl = UrlHelper.GetRootUrl(Request.Url.AbsoluteUri); var defaultRootUrl = ConfigurationManager.AppSettings["BaseUrl"]; var eVoucherLink = (string.IsNullOrEmpty(rootUrl) ? defaultRootUrl : rootUrl) + "/" + string.Format(ConfigurationManager.AppSettings["View.Voucher"], order.Id); var bornUrlRoot = string.Format(ConfigurationManager.AppSettings["BornBaseInsecureUrl"], CurrentLanguageId, MicrositeId); var currency = CurrencyService.GetCurrencyById(order.CurrencyId.ToString()); var request = new OrderConfirmationEmailRequest { ReceiverFirstname = order.User.Firstname, EmailSubject = MakeSubject(order.OrderNumber), SenderEmail = "\"BigBus Admin\" <" + contactData.Email + ">", ReceiverEmail = order.EmailAddress, CcEmails = contactData.Email, CityName = MicrositeId, LanguageId = CurrentLanguageId, OrderNumber = order.OrderNumber.ToString(), OrderId = order.Id.ToString(), ViewAndPrintTicketLink = eVoucherLink, UserFullName = order.UserName, DateOfOrder = LocalizationService.GetLocalDateTime(MicrositeId).ToString("dd MMM yyyy"), //*** format to local date TicketDetails = FormatOrderDetails(order), OrderTotal = currency.Symbol + order.Total, TicketQuantity = order.TotalQuantity.ToString(), TermsAndConditionsLink = bornUrlRoot + ConfigurationManager.AppSettings["TermAndCo.Url"], PrivacyPolicyLink = bornUrlRoot + ConfigurationManager.AppSettings["Privacy.Url"], ContactUsLink = bornUrlRoot + ConfigurationManager.AppSettings["ContactUs.Url"], FaqLink = bornUrlRoot + ConfigurationManager.AppSettings["Faqs.Url"], DownloadMapLink = bornUrlRoot + ConfigurationManager.AppSettings["RoutMap.Url"], AppStoreLink = MakeAppleDownloadUrl(), GooglePlayLink = MakeGooglePlayDownloadUrl(), CityNumber = ConfigurationManager.AppSettings[string.Format("{0}_Telephone", MicrositeId)], CityEmail = ConfigurationManager.AppSettings[string.Format("{0}_Email", MicrositeId)], ViewInBrowserLink = BaseUrl + "ViewEmail.aspx?oid=" + order.Id }; var templateSuccessful = GetTemplate(request); if (!templateSuccessful) { return; } var result = NotificationService.CreateOrderConfirmationEmail(request); if (!string.IsNullOrEmpty(result)) { Log(result); } }