/// send an email to the applicant and the registration office public static bool SendEmail(Int64 APartnerKey, string ACountryCode, TApplicationFormData AData, string APDFFilename) { string FileName = TFormLettersTools.GetRoleSpecificFile(TAppSettingsManager.GetValue("Formletters.Path"), "ApplicationReceivedEmail", AData.registrationcountrycode, AData.formsid, "html"); string HTMLText = string.Empty; string SenderAddress = string.Empty; string BCCAddress = string.Empty; string EmailSubject = string.Empty; if (!File.Exists(FileName)) { HTMLText = "<html><body>" + String.Format("Cannot find file {0}", FileName) + "</body></html>"; } else { StreamReader r = new StreamReader(FileName); SenderAddress = r.ReadLine(); BCCAddress = r.ReadLine(); EmailSubject = r.ReadLine(); HTMLText = r.ReadToEnd(); r.Close(); } if (!SenderAddress.StartsWith("From: ")) { throw new Exception("missing From: line in the Email template " + FileName); } if (!BCCAddress.StartsWith("BCC: ")) { throw new Exception("missing BCC: line in the Email template " + FileName); } if (!EmailSubject.StartsWith("Subject: ")) { throw new Exception("missing Subject: line in the Email template " + FileName); } SenderAddress = SenderAddress.Substring("From: ".Length); BCCAddress = BCCAddress.Substring("BCC: ".Length); EmailSubject = EmailSubject.Substring("Subject: ".Length); HTMLText = TJsonTools.ReplaceKeywordsWithData(AData.RawData, HTMLText); HTMLText = HTMLText.Replace("#HTMLRAWDATA", TJsonTools.DataToHTMLTable(AData.RawData)); // load the language file for the specific country Catalog.Init(ACountryCode, ACountryCode); // send email TSmtpSender emailSender = new TSmtpSender(); MailMessage msg = new MailMessage(SenderAddress, AData.email, EmailSubject, HTMLText); msg.Attachments.Add(new Attachment(APDFFilename, System.Net.Mime.MediaTypeNames.Application.Octet)); msg.Bcc.Add(BCCAddress); if (!emailSender.SendMessage(msg)) { TLogging.Log("There has been a problem sending the email to " + AData.email); return(false); } return(true); }
/// create PDF public static string GeneratePDF(Int64 APartnerKey, string ACountryCode, TApplicationFormData AData, out string ADownloadIdentifier) { string FileName = TFormLettersTools.GetRoleSpecificFile(TAppSettingsManager.GetValue("Formletters.Path"), "ApplicationPDF", AData.registrationcountrycode, AData.formsid, "html"); string HTMLText = string.Empty; if (!File.Exists(FileName)) { HTMLText = "<html><body>" + String.Format("Cannot find file {0}", FileName) + "</body></html>"; } else { StreamReader r = new StreamReader(FileName); HTMLText = r.ReadToEnd(); r.Close(); } if ((AData.existingpartnerkey != null) && AData.existingpartnerkey.StartsWith("If you cannot find it")) { AData.RawData = AData.RawData.Replace(AData.existingpartnerkey, "N/A"); AData.existingpartnerkey = ""; } if (AData.groupwish == null) { Regex regex = new Regex(@"^.*#GROUPWISH.*$", RegexOptions.Multiline); HTMLText = regex.Replace(HTMLText, ""); } HTMLText = TJsonTools.ReplaceKeywordsWithData(AData.RawData, HTMLText); HTMLText = HTMLText.Replace("#DATE", StringHelper.DateToLocalizedString(DateTime.Today)); HTMLText = HTMLText.Replace("#FORMLETTERPATH", TAppSettingsManager.GetValue("Formletters.Path")); HTMLText = HTMLText.Replace("#REGISTRATIONID", StringHelper.FormatStrToPartnerKeyString(APartnerKey.ToString())); HTMLText = HTMLText.Replace("#PHOTOPARTICIPANT", TAppSettingsManager.GetValue("Server.PathData") + Path.DirectorySeparatorChar + "photos" + Path.DirectorySeparatorChar + APartnerKey.ToString() + ".jpg"); HTMLText = HTMLText.Replace("#HTMLRAWDATA", TJsonTools.DataToHTMLTable(AData.RawData)); PrintDocument doc = new PrintDocument(); TPdfPrinter pdfPrinter = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eFormLetter); TPrinterHtml htmlPrinter = new TPrinterHtml(HTMLText, String.Empty, pdfPrinter); pdfPrinter.Init(eOrientation.ePortrait, htmlPrinter, eMarginType.ePrintableArea); string pdfPath = TAppSettingsManager.GetValue("Server.PathData") + Path.DirectorySeparatorChar + "pdfs"; if (!Directory.Exists(pdfPath)) { Directory.CreateDirectory(pdfPath); } string pdfFilename = pdfPath + Path.DirectorySeparatorChar + APartnerKey.ToString() + ".pdf"; pdfPrinter.SavePDF(pdfFilename); string downloadPath = TAppSettingsManager.GetValue("Server.PathData") + Path.DirectorySeparatorChar + "downloads"; if (!Directory.Exists(downloadPath)) { Directory.CreateDirectory(downloadPath); } // Create a link file for this PDF ADownloadIdentifier = TPatchTools.GetMd5Sum(pdfFilename); StreamWriter sw = new StreamWriter(downloadPath + Path.DirectorySeparatorChar + ADownloadIdentifier + ".txt"); sw.WriteLine("pdfs"); sw.WriteLine(Path.GetFileName(pdfFilename)); sw.Close(); return(pdfFilename); }