public static string GetAmazonLogoAndLink(AmazonProductAPIContext.Regions region) { StringWriter stringWriter = new StringWriter(); using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) { string amazonEndpoint = AmazonProductAPIConstants.RegionPublicURLMapping[region]; string associateTag = AmazonProductAPIContext.RegionAssociateIdMapping[region]; string amazonURL = string.Format(amazonURLWithTagFormat, amazonEndpoint, associateTag); writer.AddAttribute(HtmlTextWriterAttribute.Href, amazonURL); writer.RenderBeginTag(HtmlTextWriterTag.A);//Open A tag writer.AddAttribute(HtmlTextWriterAttribute.Src, imageURL); writer.AddAttribute(HtmlTextWriterAttribute.Width, "200"); writer.AddAttribute(HtmlTextWriterAttribute.Height, "200"); writer.RenderBeginTag(HtmlTextWriterTag.Img); //Img open writer.RenderEndTag(); //Img Close writer.RenderEndTag(); //A Close } return(stringWriter.ToString()); }
public static MailMessage ProductHtmlMailContent(List <ProductEmailDetails> productsToEmail, AmazonProductAPIContext.Regions region) { //StringWriter stringWriter = new StringWriter(); //using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) //{ // writer.RenderBeginTag(HtmlTextWriterTag.Html);//Html open // writer.RenderBeginTag(HtmlTextWriterTag.Body);//Body open // writer.Write(GetAmazonLogoAndLink(region));//Insert logo and link // writer.RenderBeginTag(HtmlTextWriterTag.Ul);//Unordered list open // foreach(var key in productsToMail.Keys) // { // string product = key; // string link = productsToMail[key]; // var tempWriter = GetLinkForProduct(product, link); // writer.Write(tempWriter); // } // writer.RenderEndTag();//Unorder List close // writer.RenderEndTag();//Body Close // writer.RenderEndTag();//Html Close //} //return stringWriter.ToString(); // We'll dump the resulting HTML body in a file string status = string.Empty;; MailMessage mailMessage = null; try { status = "Entered try bloc"; var templateCompiler = new TemplateCompiler(); var xmlSerializer = new CustomXmlSerializer(); var layoutFileName = "EmailLayout.html"; var xslFileName = "EmailTemplate.xslt"; status = "Getting files from S3;"; var layoutFile = GetFileFromS3(layoutFileName); var xsltFilePath = GetFileFromS3(xslFileName); status = "Got files from S3"; //var layoutFile = Path.Combine(templateDirectory, "EmailLayout.html"); //var xsltFilePath = Path.Combine(templateDirectory, "EmailTemplate.xslt"); var variables = new { ProductsToEmail = productsToEmail.ToArray() }; var templateEmailSender = new TemplateEmailSender(templateCompiler, xmlSerializer) { LayoutFilePath = layoutFile }; status = "Calling construct message"; mailMessage = templateEmailSender.ConstructMailMessage(xsltFilePath, variables); return(mailMessage); // Close the file } catch (Exception ex) { throw new Exception("Send email failed with exception " + status + ex.Message, ex); } }