Example #1
0
        private void WriteHtml(IEnumerable<Car> values, string subject)
        {
            var strBldr = new StringBuilder();
            var strWriter = new StringWriter(strBldr);
            var writer = new HtmlTextWriter(strWriter);

            writer.RenderBeginTag(HtmlTextWriterTag.Html);

            // <head>
            writer.RenderBeginTag(HtmlTextWriterTag.Head);

            writer.AddAttribute("type", "text/css");
            writer.RenderBeginTag(HtmlTextWriterTag.Style);
            writer.Write("table { border-collapse: separate; }");
            writer.Write("border-spacing: 0 5px; }");
            writer.RenderEndTag();

            // </head>
            writer.RenderEndTag();

            // <body>

            writer.RenderBeginTag(HtmlTextWriterTag.Body);

            writer.AddStyleAttribute("width", " 100%");

            writer.RenderBeginTag(HtmlTextWriterTag.Table); //Main Table
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            var counter = 0;
            foreach (var val in values)
            {

                if(val.EmailSent)
                    continue;

                writer.AddStyleAttribute("width", " 100%");

                writer.AddStyleAttribute("background-color", counter % 2 == 0 ? " #3399FF" : " #999966");

                writer.RenderBeginTag(HtmlTextWriterTag.Table);

                //writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                //writer.RenderBeginTag(HtmlTextWriterTag.Td);
                //writer.Write("&nbsp;");
                //writer.RenderEndTag();
                //writer.RenderEndTag();

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddStyleAttribute("width", " 100%");
                writer.RenderBeginTag(HtmlTextWriterTag.Table);

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);

                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(val.DateIn.ToString("MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture));
                writer.RenderEndTag();

                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                // To do
                writer.Write(_feeds.Where(x => x.Id == val.FeedId).FirstOrDefault().FeedCity);

                writer.RenderEndTag();

                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                // To Do
                writer.Write(_feeds.Where(x => x.Id == val.FeedId).FirstOrDefault().FeedState);
                writer.RenderEndTag();

                writer.RenderEndTag();
                writer.RenderEndTag();

                writer.RenderEndTag();
                writer.RenderEndTag();

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(val.Title);
                writer.RenderEndTag();
                writer.RenderEndTag();

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(val.Description);
                writer.RenderEndTag();
                writer.RenderEndTag();

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.AddAttribute(HtmlTextWriterAttribute.Href, val.Link);
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(val.Link);
                writer.RenderEndTag(); //A
                writer.RenderEndTag();
                writer.RenderEndTag();
                writer.RenderEndTag();
                counter++;
            }

            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag(); //End Main Table

            // </body>
            writer.RenderEndTag();
            // </html>
            writer.RenderEndTag();

            var html = strBldr.ToString();
            var email = new Email
                {
                    EmailGeneratedDate = DateTime.Now,
                    EmailMessage = html,
                    EmailSent = false,
                    EmailSubject = subject
                };
            //  Logger.Debug(html);
            int id = DataAccess.InsertEmail(email);
            foreach (var v in values)
            {

                var batch = new EmailBatch { EmailId = id, CarId = v.Id };
                DataAccess.InsertEmailBatch(batch);
                DataAccess.UpdateMailSent(v.Id);
                v.EmailSent = true;
            }
        }
Example #2
0
 public void InsertEmailBatch(EmailBatch emailbatch)
 {
     conn.Execute("usp_EmailBatch_Create", new { CarId = emailbatch.CarId, EmailId = emailbatch.EmailId },
                  commandType: CommandType.StoredProcedure);
 }